2016-03-05 51 views
0

我有对象控制器角指令表不走了

$scope._id = '12345'; 
$scope.messages = { 
    '12345': [ 
     { 
     author: 'Vasya', 
     message: 'Message from Vasya' 
     }, 
     { 
      author: 'Bob', 
      message: 'Message from Bob' 
     }] 
}; 

HTML标记:

<div message-list="{{_id}}")></div> 

我的指令:

var App = angular.module('app', []) 
.directive("messageList", function() { 
    return { 
     link: function(scope,element,attrs) {   
      scope.$watch('messages[attrs.messageList]', function(newVal,oldVal) { 
       if (newVal!==oldVal) 
       { 
        console.log("newVal",newVal); 
        console.log("oldVal",oldVal); 
       } 
      },true); 
     } 
    } 
}); 

,但看不,当我工作将新元素推入数组$ scope.messages ['12345']。

+0

如果我是正确的,你想观看的范围是“指令范围”,并且不与控制器范围相关,其中的对象“消息“是。 尝试直接在控制器中观看或使用Rootcope。 $ root351, – icchio

回答

0

这里是一个plunkr.在查看plunker的同时打开控制台查看更改。

您将需要一个$watchmessages对象:

scope.$watch('messages', function(newVal,oldVal) { 
    if (newVal!==oldVal) 
    { 
     console.log("newVal",newVal); 
     console.log("oldVal",oldVal); 
    } 
},true);