我相信問題是您的指令中的selected
對象。它拋出的異常導致了這一點。
在您綁定的html中selected.name
這意味着您的指令中的selected
將與您的控制器中的selected
的name
屬性綁定。
但是,當您選擇一個項目時,試圖在您的指令中設置selected
對象的name
屬性,顯然它不具有它的字符串。
因此,解決辦法:
$scope.selectedCountry = function (item){
console.log(item);
$scope.selected = item.name
}
在您的指令只需設置名稱selected
。
http://jsfiddle.net/abarfhr8/1/
編輯:
不過,我想稍微重組它。首先在您的控制器中初始化您選擇的對象 ,然後$scope.selected = $scope.items[0]
。然後將ng-model
更改爲ng-model="selected"
,以便返回整個選定的對象。
終於在你的指令做:
$scope.selectedCountry = function (item){
console.log(item);
$scope.selected = item
}
現在,當你運行和選擇代碼和名稱輸入正確填寫的項目。
見第二小提琴:http://jsfiddle.net/abarfhr8/2/
希望有所幫助。
謝謝你的努力。你救了我的一天。 –
=和&和@在這裏有什麼用處 –
沒問題,'@,=,=?,&'告訴角色如何綁定指令和外部世界。你可以有兩種方式綁定,可選的兩種方式綁定,一種方式是屬性是一種訪問器方法來獲取值和更多。這應該有希望解釋它。 https://docs.angularjs.org/api/ng/service/$compile#-scope-你也可以自己擁有'='。它會希望html屬性與scope屬性具有相同的名稱。 – ste2425