似たような問題を抱えているが、通常のスコープを持つ人が2人います。$ applyは私にとっては機能しません($ digestはすでに進行中です)。今日私の頭を叩いている。
私の指示の簡略化された完全版を以下で見つけてください。
- initialize()は、myValueを初期値に設定します。
- $ rootScopeイベントがキャッチされました。
- 約束が解決されています。
- $ localStorageが更新されます
- console.log(myValue)が正しい値を返します。
私のビューは更新されません。どうしたの?!
(function() {
'use strict';
angular
.module('myApp')
.directive('myDirective', myDirective);
function myDirective($rootScope, $localStorage, MyPromise, MyService) {
var linkFunction = function (scope, element, attributes) {
scope.myValue = null;
$rootScope.$on('someEvent', function (event, data) {
MyPromise().get({}, function (result) {
$localStorage.result = result;
scope.myValue = MyService.getFromLocalStorageAndReturnStuff();
console.log(scope.myValue);
});
});
initialize();
function initialize() {
scope.myValue = MyService.getFromLocalStorageAndReturnStuff();
}
};
return {
restrict: 'A',
transclude: true,
replace: true,
scope: {
someProperty: '=myProperty'
},
link: linkFunction,
templateUrl: 'myTemplate.html'
};
}
})();
{{myValue}}
呼び出そうとしましたキャッシュ –