繁体   English   中英

角跨指令与控制器双向绑定不更新

[英]Angular transcluded directive with two-way binding to controller not updating

我正在使用此https://github.com/blackgate/bg-splitter创建水平和垂直窗格拆分器。 (完整的代码在我创建的plunkr中)

自从我开始使用它以来,我就遇到了控制器和指令的双向绑定问题。

该指令具有两个变量,listData和selectedOption:

template: '<select ng-model="selectedOption" ng-options="l.name for l in listData" class="form-control"></select>',
    scope: {
        listData: "=",
        selectedOption: "="
    },

控制器具有以下变量,并具有监视功能以监视更改:

$scope.listdata = [{id : 1, name : "listitem1"},{id : 2, name : "listitem2"},{id : 3, name : "listitem3"}];

$scope.selectedOption = null;

$scope.$watch('selectedOption', function() {
        console.log('updating selected choice');
        console.log($scope.selectedOption);
}, true);

该指令的使用方式如下:

<dropdown list-data="listdata" selected-option="listItem"></dropdown>

如果没有paneSplitter,则下拉列表将起作用。 由于某些原因,当绑定变量在dropdown指令中更新时,它不会在控制器中更新。 这可能是一个范围问题,但我似乎无法自己弄清楚。 任何帮助是极大的赞赏。 请查看以下带有完整代码的plunkr:

http://plnkr.co/edit/UnJaPV8LYm3unILEU3Lq

记住那句著名的名言:“如果您在模型中未使用。(点),那么您做错了吗?” 如果将手表更改为此:

$scope.$watch('data.listItem', function() {
        console.log('updating selected choice');
        console.log($scope.data.listItem);
}, true);

然后将HTML更改为此

<dropdown list-data="listdata" selected-option="data.listItem"></dropdown>

这是一个笨蛋

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM