0
我有一个角度范围,看起来是这样的:更深,比这更复杂的角:深范围遍历和更新
{
node_type: 100, node_instance: 001, value: 'pony', show: true, childNodes: {
node_type: 100, node_instance: 011, value: 'cat', show: false, childNodes: {
node_type: 101: node_instance: 001, value: 'apple'show: true,
}
node_type: 100: node_instance: 012, value: 'kitty', show: true,
node_type: 100: node_instance: 013, value: 'meow', show: true,
}
node_type: 100, node_instance: 002, value: 'horse', show: true, childNodes: {
node_type: 102: node_instance: 001, value: 'dog', show: false,
node_type: 100: node_instance: 014, value: 'mutt', show: true,
}
}
这显然太多(很多)。
在制做各种动作(比如,将“狗”到“菲多”),我的服务器将返回新更新,在一组像看似无关的数据...
{ node_type:101, node_instance:001, show:false }
我发现的各种方式遍历范围来查找101,001节点,但它们都涉及将范围节点的副本发送到遍历函数,更新副本中的属性是毫无价值的。我怎样才能告诉函数在正确的地址更新范围,或通过引用更新节点属性? (或者是解决方案与在DOM中设置data =“show”属性一样愚蠢,在Angular之外更新DOM,然后设置scope.apply()请求?我的范围很不好.apply()...)
所以“角度的方式”是让你的模型存在于最上面的通用范围内。例如,如果这是根作用域,那么仅通过将$ rootScope注入到控制器中就无法实现了吗? – 2013-05-08 22:24:37
当你在JavaScript中传递对象到任何通过值传递的函数,但传递的值实际上是一个引用而不是对象本身,所以它更新遍历函数的范围propeties它不会是一个毫无价值的工作。此链接将使其更加清晰:http://stackoverflow.com/questions/518000/is-javascript-a-pass-by-reference-or-pass-by-value-language – 2013-05-09 05:08:05
回复:Ram - 如果你是这表明我重新加载了根控制器中的整个数据集,导致接口重新加载,从而导致用户以相当复杂的形式失去他的位置。 – user2246897 2013-05-10 14:42:06