Angular 指令 2 方式绑定和刷新
Angular Directives 2 way binding & refresh
假设您有一个页面,其中有一个客户搜索指令(第一个指令)。
您进行搜索并从 Web 服务器返回客户列表。
现在,在上面的指令中,您有第二个指令,我们称它为 customerRes
,它为客户显示一些信息(这就像在您网站的许多地方重复使用的小部件)。在第二条指令的隔离范围内,我有一个名为 results
的属性,我从返回的结果中绑定了该属性,例如
第一个指令的声明类似于
<customer-res results="webserverResult">
在 customerRes
指令中我有类似
的东西
<div ng-repeat="x in results>
{{name}} {{bla}} ... bla bla
</div>
现在每次用户单击父指令时,它都会向网络服务器发出请求,并且可能会得到不同的结果。
问题:angular 是否实际监控自己绑定到独立作用域的值在指令之外发生了变化,还是我需要做些什么来确保它无效?
此外,即使您在结果返回之前加载您的页面,一旦他们返回,他们不应该更新页面元素吗?
一个很酷的方法是您会自己找到答案。不要误会我的意思,但我个人是在 angular 迈出第一步时这样做的。有助于更深入地理解框架而不是阅读文档并且更容易忘记。
您可以随时添加
scope.$watch('myVariable', function(value) {
console.log('myVariable changed to:', value);
})
你的指令,看看它的值何时改变。
即使在整页重新加载时,双向绑定也很有魅力。没有指令的 JS 代码就不能更精确。但是当使用独立作用域时,指令可能需要
scope: {
myVariable: '='
}
<my-directive my-variable="results.entries"></my-directive>
但请记住,重新加载页面时,angular 会从零重新开始。对于每个指令来说,它的 link 函数被调用一次,并且在后台调用许多其他的东西。关键字是 angular 的 digest cycle
.
希望我能帮助解决这个(更广泛的)问题。
假设您有一个页面,其中有一个客户搜索指令(第一个指令)。 您进行搜索并从 Web 服务器返回客户列表。
现在,在上面的指令中,您有第二个指令,我们称它为 customerRes
,它为客户显示一些信息(这就像在您网站的许多地方重复使用的小部件)。在第二条指令的隔离范围内,我有一个名为 results
的属性,我从返回的结果中绑定了该属性,例如
第一个指令的声明类似于
<customer-res results="webserverResult">
在 customerRes
指令中我有类似
<div ng-repeat="x in results>
{{name}} {{bla}} ... bla bla
</div>
现在每次用户单击父指令时,它都会向网络服务器发出请求,并且可能会得到不同的结果。
问题:angular 是否实际监控自己绑定到独立作用域的值在指令之外发生了变化,还是我需要做些什么来确保它无效?
此外,即使您在结果返回之前加载您的页面,一旦他们返回,他们不应该更新页面元素吗?
一个很酷的方法是您会自己找到答案。不要误会我的意思,但我个人是在 angular 迈出第一步时这样做的。有助于更深入地理解框架而不是阅读文档并且更容易忘记。
您可以随时添加
scope.$watch('myVariable', function(value) {
console.log('myVariable changed to:', value);
})
你的指令,看看它的值何时改变。
即使在整页重新加载时,双向绑定也很有魅力。没有指令的 JS 代码就不能更精确。但是当使用独立作用域时,指令可能需要
scope: {
myVariable: '='
}
<my-directive my-variable="results.entries"></my-directive>
但请记住,重新加载页面时,angular 会从零重新开始。对于每个指令来说,它的 link 函数被调用一次,并且在后台调用许多其他的东西。关键字是 angular 的 digest cycle
.
希望我能帮助解决这个(更广泛的)问题。