2017-02-21 58 views
0

我有以下代码:传递给指令的变量在父节点变得未定义?

parent.jade:

chat-box(message-content="messageContent" send-message="sendMessage()") 
div {{messageContent}} 

parent.js:

$scope.messageContent; 
$scope.sendMessage = function(){ 
    alert($scope.messageContent); 
} 

directive.js:

app.directive('chatBox', ['$window', function ($window) { 
    //--- 
    return { 
     restrict: 'E', 
     scope: { 
      messageContent: '=', 
      sendMessage: '&?' 
     }, 
     templateUrl: '/tpl/chatbox', 
     link: function(scope, element, attr){ 

     } 
    }; 
    //--- 
}]); 

directive.jade:

div(layout="row" layout-align="bottom bottom" style="padding: 10px; flex-shrink: 0;") 
    textarea(ng-model="messageContent" flex) 
    md-button(ng-click="sendMessage()") 

它会随时提醒我undefined$scope.messageContent,但如果我尝试在textarea使用ng-change并调用我的指令里面的功能,它将返回我正确的值。

它还会在父级打印正确的div值。

有人有想法吗?

回答

0

我设法通过在父控制器中更改$scope.messageContent;$scope.messageContent = {};来解决它。