2016-04-02 22 views
0

我是angularjs的新手,仍在學習語言。 我在html中創建了一個選擇框,我想用我的控制器中的一個變量填充它。如何在html中使用angularjs索引變量

我能夠使用{{variablename}}在html中獲取變量,但我無法獲取其中的子對象。 請參閱我的代碼here
你可以看到它顯示「repeatSelect」在HTML,但如果我在它嘗試索引一個對象,它不顯示(的getID總是空)

控制器有一個$ scope變量如下

controller('ExampleController', ['$scope', function($scope) { 
    $scope.repeatSelect = null; 
    $scope.data = { 
    availableOptions: [ 
     {id: '1', name: 'Option A'}, 
     {id: '2', name: 'Option B'}, 
     {id: '3', name: 'Option C'} 
    ], 
    }; 
}]); 

在HTML代碼,

<tt>repeatSelect = {{repeatSelect}}</tt><br/> 
    <tt>getID = {{repeatSelect.id}}</tt><br/> 

repeatSelect工作正常,但repeatSelect.id沒有。

請指導

回答

1

使用ng-options內置指令,而不是https://docs.angularjs.org/api/ng/directive/ngOptions

它專門爲使用HTML選擇列表而設計,並有很多強大的選項。

<div ng-controller="ExampleController"> 
    <label> Repeat select: </label> 
    <select ng-options="option as option.name for option in data.availableOptions track by option.id" ng-model="repeatSelect"></select> 
    <hr> 
    <tt>repeatSelect = {{repeatSelect}}</tt><br/> 
    <tt>getID = {{repeatSelect.id}}</tt><br/> 
</div> 

請參閱plunkr這裏:http://plnkr.co/edit/kIcH5fF7suhN0rhVDez8?p=preview

+0

啊打我,但你並不真正需要的「軌跡由」 – nCore

+0

我知道這是一種習慣,現在由於我已經經歷了性能問題。 –

+0

我看到,從來沒有使用軌道之前總是「爲」。很抱歉,速度很慢,但「as」和「track by」之間的區別是什麼,因爲它們基本上都是一樣的? – nCore