2012-12-02 26 views
4

http://plnkr.co/ywhmyO

我試圖編譯和指示,但我沒有在任何地方得到更新事件點擊NG-模型。該示例中的編譯代碼直接從角度網站剝離,但我不知道如何使用它。任何指導非常感謝。

+0

你能不能請你的意思是「編譯指令」什麼更具體一點? – Hengjie

+0

檢查出盜賊,你會馬上看到這個概率。關於角度數據綁定的許多問題都集中在擴展'小部件'類型功能或包含jquery插件。 angularjs網站在這裏討論指令:http://docs.angularjs.org/guide/directive並在這裏編譯:http://docs.angularjs.org/api/ng.$compile。我知道我需要告訴角度的$事件,但不知道如何。 – karojosh

回答

11

您正在絆倒ng-repeat創建新範圍的事實。因此,您的更新僅在子作用域中發生,並且不在父作用域中顯示。在0基於計數器

<div ng-repeat="name in names"> 
    <input ng-model="name.name" ng-click="changeName($index)" value="{{ name.name }}"> 
</div> 

$index

你可以做在你看來是這樣的。然後在你的控制器中:

$scope.changeName = function($index) { 
    $scope.names[$index].name = $scope.nameselected; 
}; 
+2

沒辦法!萬分感謝。讓我想起薩拉丁的彎刀切一條絲巾。 – karojosh

0

爲什麼不傳遞參數?

<div ng-repeat="name in names"> 
    <input ng-model="name.name" ng-click="changeName(name)" value="{{ name.name }}"> 
</div> 
$scope.changeName = function(name) { 
    name = $scope.nameselected; 
}; 
+1

因爲參數將通過值/副本傳遞。將其分配給其他內容對外部範圍沒有影響。但是 - 這正是我想要做的,有一個「通用」的方法,可以在不同的「模型」上使用。任何想法如何在不寫出整個指令的情況下實現這一點? – icyerasor