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)? –