2017-02-21 44 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 = {};來解決它。