控制器属性更改不会影响某些指令的整个绑定属性

时间:2016-05-03 11:05:53

标签: javascript angularjs angularjs-directive angularjs-1.5

假设我已经实现了如下指令:

bar

...其中 foo 指令的模板如下所示:

<span ng-bind="item.text"></span>

...而model.selectedItem指令的模板看起来如下:

<bar />

TL; DR:我的问题

<bar />因用户点击某些重复的 <bar />而发生更改时,外部model.text不知道任何所谓的属性更改。也就是说,外部foo不会更新其绑定的bar属性。

我无法弄清楚为什么{{1}}控制器上的模型更改不会更改外部{{1}}指令。

1 个答案:

答案 0 :(得分:1)

selectedItem位于foo指令范围内。因此,它不会被外界看见(bar指令)。

您可以保留另一个包含所选项目键的变量。 然后在bar指令中,您可以按如下方式绑定值,

<bar item ="items[selectedKey].text"></bar>

编辑:你也可以尝试在范围而不是this上设置值。

$scope.selectedItem = item;

而不是

this.selectedItem = item;