Angularjs 通过UI网格cellTemplate呈现的指令呈现不正确
我遇到了一个奇怪的问题,因为我的指令似乎是在陈旧的row.entities上执行的,这意味着它在向下滚动或修改网格排序时不会获得新值。最初的~20行渲染效果良好,但超过该值后,指令与行解除关联Angularjs 通过UI网格cellTemplate呈现的指令呈现不正确,angularjs,angularjs-directive,angular-ui-grid,Angularjs,Angularjs Directive,Angular Ui Grid,我遇到了一个奇怪的问题,因为我的指令似乎是在陈旧的row.entities上执行的,这意味着它在向下滚动或修改网格排序时不会获得新值。最初的~20行渲染效果良好,但超过该值后,指令与行解除关联 请参见我的“非常拼凑”的示例。它看起来像是在对传递给指令change的表达式的值进行排序时,但表达式本身保持不变 您应该将作用域&表达式绑定更改为=值绑定(并使用作用域访问值。安装,无需函数调用),然后您就可以跟踪更改 // ... scope: { installs: '=' }, // ...
请参见我的“非常拼凑”的示例。它看起来像是在对传递给指令change的表达式的值进行排序时,但表达式本身保持不变 您应该将作用域
&
表达式绑定更改为=
值绑定(并使用作用域访问值。安装
,无需函数调用),然后您就可以跟踪更改
// ...
scope: {
installs: '='
},
// ...
然后,要跟踪更改,可以使用scope.$watch
并将代码放入其中
link: function (scope, element, attrs) {
scope.$watch('installs', function(newValue) {
// your code, you can use newValue as current installs value
var installs = newValue;
// ...
});
}
示例。无论您使用表达式绑定还是值绑定,都会得到相同的行为(在这两个示例中,手表当然仍然解决了问题)。我的印象是link方法的执行方式与watch相同。与手表相比,你能解释一下链接功能的工作原理吗?