2015-09-02 172 views
0

我有一個更新綁定屬性的指令,但它似乎永遠不會更新原始屬性!指令中的AngularJS雙向數據綁定不起作用

directives.directive('recordVideo', [function() { 
    return { 
     scope: { 
      showRecordVideo: '=' 
     }, 
     controller: "recordVideoController as ctrl", 
     templateUrl: '/views/recordvideo.html' 
    }; 
}]); 

<record-video data-show-record-video="showAddScheduleDialog"></record-video> 

當我在父控制器設置$scope.showAddScheduleDialog = true,該指令看到變化,顯示該對話框。當對話框本身設置其屬性$scope.showRecordVideo = false父控制器showAddScheduleDialog上的綁定屬性永不更新!

這是爲什麼?

我已經嘗試將$scope.$watch放在父控制器和指令上。這些更改只傳播到指令,並且從不備份到控制器!

+0

放一些的jsfiddle幫助。 – Joy

+0

請經過[this](http://jsfiddle.net/HarshMehta/6zf6ndtx/)。你會得到你目前缺少的... – road2victory

回答

1

該問題是由javascript原型繼承(the long answer)造成的。通常黑客是改變裏面的屬性:

此保持不變:

scope: { 
    showRecordVideo: '=' 
}, 

在控制器:

$scope.showRecordVideo = { 
    state: true 
}; 

在模態:

$scope.showRecordVideo.state = false; 
+0

不知道我錯過了這一點,謝謝 – Chris