我遇到的東西,我想在AngularJS做的一個問題。 事情是這樣的:Angularjs未定義的對象時,屬性雙向綁定
我有一個控制器和我有這樣定義的指令:
helpers.directive('someEvent', function() {
...
scope: {
api: '='
}
...
controller: ['$scope', function($scope) {
$scope.hasSomeEventOccured = function(){
return booleanVariable
};
$scope.api = {
hasSomeEventOccured: $scope.hasSomeEventOccured
}
}]
});
然後,在一些其他控制器我想訪問該功能hasSomeEventOccured
... 控制器定義如下:與
moduleName.controller('moduleSomethingController',
['$scope', '$state', 'moduleRepository', function ($scope, $state, moduleRepository) {
$scope.theEventOccured = $scope.someEventApi.hasSomeEventOccured();
}]);
在CSHTML文件我有:
<some-event api="someEventApi" ></some-event>
<div ng-if="theEventOccured"></div>
,偶爾發生的錯誤是$scope.someEventApi
是未定義的。 所以這個換行符:$scope.theEventOccured = $scope.someEventApi.hasSomeEventOccured();
我想這是因爲在完成與someEvent
結合之前發生moduleSomethingController
內調用hasSomeEventOccured
。
我的問題是你如何解決這個問題?
我知道,在一個指令,你會碰到這樣的:
link: function(scope, element, attrs) {
attrs.$observe(...);
}
但我怎麼能實現像等待綁定在我的情況來完成?