即使在绑定范围变量更新后,UI元素(网格)也不会更新

问题描述:

我的用户界面绑定到一对连接到对象参数的范围变量。即使在绑定范围变量更新后,UI元素(网格)也不会更新

当我更新update()方法中的绑定变量时,我的UI网格没有得到更新。该变量具有所有必需的属性和值。

function update() { 
     $scope.summaryValuesStruct = service.summaryValuesStruct; 
     $scope.aggregateByValue = service.aggregation; 
    } 

更新被调用后,我期待UI网格会得到更新,因为服务对象将新的值放入变量中。

+0

请提供html也 –

+0

您确定这些值已更新您的服务?你有没有尝试输出(console.log)这些值和范围变量的值,当调用更新来验证函数被调用时的值是什么? –

+0

更新函数如何被调用? – xersiee

虽然这是缺少很多信息,我的猜测是,这是因为你直接在$scope上使用属性。我猜测它正在更新一个子范围而不是父级。

请尝试将数据作为对象存储在范围中。

function update() { 
     $scope.data.summaryValuesStruct = service.summaryValuesStruct; 
     $scope.data.aggregateByValue = service.aggregation; 
    } 

有关更深入的说明,请参阅jimhoskins.com/2012/12/14/nested-scopes-in-angularjs.html

+0

可以请更新一点,为什么它会更新子范围,我们不应该直接在$ scope上使用属性 –

+0

它涉及到Javascript如何处理原型继承对象(这是构建范围继承)。 http://jimhoskins.com/2012/12/14/nested-scopes-in-angularjs.html是比我在这里可以解释的更好的文章。 controllerAs语法也可以解决这个问题。 –