好的,这是一个令人费解的问题,我可能会问一个糟糕的方法。如果是这种情况,请告诉我。
所以我有一个导航栏directive
。当有人点击某些内容时,我设法获得了添加类的指令,因此加载了该栏。 Thanks to StackOverflow
但是现在,我有一个获取和设置值的服务。在服务中更改值时,我想在视图中反映出来。这样的事情有可能吗?
修改
为了澄清,如果我使用$apply(function()....
,我该怎么做?我的观点有类似的东西。我的观点不受任何特定控制器或范围的约束。不确定是否应该。但这是我的观点片段:
<p>
Are you sure you change that song,
<br />
{{ songs[0].title }}
</p>
这是我的指示:
angular.module('MyApp')
.directive('navbar', function () {
return {
restrict: 'A',
templateUrl : '/views/partials/nav.html',
controller: function ($scope, ModalService) {
$scope.ms = ModalService;
$scope.songs = {};
$scope.$watch('ms.songs', function(newVal, oldVal) {
if(newVal != null) {
$scope.$apply(function() {
$scope.songs = newVal;
});
}
});
},
答案 0 :(得分:1)
你试过这个吗?
angular.module('MyApp')
.directive('navbar', function () {
return {
restrict: 'A',
templateUrl : '/views/partials/nav.html',
controller: function ($scope, ModalService) {
$scope.songs = ModalService.songs;
}
});
答案 1 :(得分:0)
我最近碰到了一个场景,我必须在指令中的服务属性上设置监视,解决方案是在链接函数中设置监视类似于:
link: function(scope, element, attrs) {
// other link code
scope.$watch(function() { return svc.property; }, function(data) {
// do something here
});
// other link code
}