0
我有以下指令:
// expose directive
return {
restrict: 'E',
link: linkFn,
scope: {
treeModel: "<"
},
controller: function ($scope) {
var vm = this;
},
controllerAs: 'vm'
};
我想要做的是对treeModel
看变化,所以在我的链接功能我做了如下:
function linkFn(scope, element, attrs) {
scope.$watch('treeModel', function(value){
if(value instanceof Array){
scope.tree.jstree(true).settings.core.data = value;
scope.tree.jstree(true).refresh();
}
});
}
在这种情况下(该代码被执行两次首次value
未定义,但在第二时间value
是对象的数组),但我想要实现的$onChanges
钩中,由于I”的工作原理米计划荷兰国际集团,以我的应用程序迁移到角2,所以我做了如下:
// expose directive
return {
restrict: 'E',
link: linkFn,
scope: {
treeModel: "<"
},
controller: function ($scope) {
var vm = this;
vm.$onChanges = function (changes) {
if($scope.treeModel instanceof Array){
$scope.tree.jstree(true).settings.core.data = $scope.treeModel;
$scope.tree.jstree(true).refresh();
}
};
},
controllerAs: 'vm'
};
然后我删除从我的链接功能的scope.$watch
代码。
当我尝试这样做,它不工作,vm.$onChanges
其中值是不确定的被触发一次,从来没有被触发,第二次为与scope.$watch
,并且changes
参数始终是不确定的,当它应该是一个对象,其中键是更改的绑定名称。
我该如何解决这个问题?
请问您可以发表一个[*最小,完整和可验证的示例*](https://stackoverflow.com/help/MCVE)? –