我认为我的指令中存在关于双向绑定的缺失。
在页面控制器(ScheduleEditCtrl
)中有一个对象数组(scheduleList
)(以及其他一些属性)。
这在视图中使用:
<undo-support watch-on="scheduleEdit.scheduleList"
can-undo="scheduleEdit.canUndo"
can-redo="scheduleEdit.canRedo"
is-watch-on-initialized="scheduleEdit.isScheduleInitialized"></undo-support>
指令:
angular.module('xnuapp')
.directive('undoSupport', function () {
return {
restrict: 'E',
controller : 'UndoSupportCtrl',
controllerAs : 'undoSupport',
scope: {
watchOn: '=watchOn',
canUndo: '=canUndo',
canRedo: '=canRedo',
isWatchOnInitialized: '=isWatchOnInitialized'
}
};
});
在指令的控制器(UndoSupportCtrl
)中,可能是数组(watchOn
)中的项目得到更新。
$scope.watchOn = angular.copy(commands[--pointer]);
我的理解是,当watchOn
更新时,它应该反映回scheduleEdit.scheduleList
,但通过各种日志记录触发器,我发现了scheduleList
属性即使ScheduleEditCtrl
有效,watchOn
也不会发生变化。应该在哪里看到阻止这种情况发生的原因?