我正在使用此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,下拉菜单正在工作。出于某种原因,当绑定变量在下拉指令中更新时,它不会在控制器中更新。这可能是一个范围问题,但我自己似乎无法弄清楚。任何帮助是极大的赞赏。请参阅以下带有完整代码的 plunkr: