2013-04-29 113 views
13

我正在開發一個angularjs項目,並且我在ngModel沒有在select中綁定的問題。但是相同的概念正在另一個選擇標籤和相同的html頁面中工作。 以下是代碼。選擇的AngularJS ngModel指令

<select ng-model="selectedFont" 
      ng-options="font.title for font in fonts" 
      ng-change="onFontChange()"> 
    </select> 

onFontChange()功能被放置在控制器中。

任何幫助是非常可觀的...在此先感謝。

+1

親密分享完整代碼或分享jsfiddle演示 – 2013-04-29 06:30:44

+0

我不知道如何使用jsfiddle – 2013-04-29 06:45:14

+0

你可以發佈'onFontChange()'代碼嗎? – 2013-04-29 06:50:36

回答

20

基於託尼小馬的小提琴:

<div ng-app ng-controller="MyCtrl"> 
    <select ng-model="opt" 
      ng-options="font.title for font in fonts" 
      ng-change="change(opt)"> 
    </select> 

    <p>{{opt}}</p> 
</div> 

與控制器:

function MyCtrl($scope) { 
    $scope.fonts = [ 
     {title: "Arial" , text: 'Url for Arial' }, 
     {title: "Helvetica" , text: 'Url for Helvetica' } 
    ]; 
    $scope.change= function(option){ 
     alert(option.title); 
    } 
} 

http://jsfiddle.net/basarat/3y5Pw/43/

+3

希望我能對此讚賞兩次。 – Skitterm 2014-09-17 22:17:20

+0

您也可以使用'$ scope。$ watch()'來表示:http://stackoverflow.com/questions/15727219/how-can-i-detect-when-a-user-changes-the-value- IN-A-選擇 - 下拉 - 使用 - angul – Caumons 2015-06-18 16:19:55

2

首先創建數據(可以是本地或服務器)的控制器。並初始化默認值,這會強制在HTML表單中選擇默認項目。

// supported languages 
$scope.languages = ['ENGLISH', 'SPANISH', 'RUSSIAN', 'HINDI', 'NEPALI']; 
// init default language 
$scope.language = 'ENGLISH'; 

現在,在你的HTML表單

<select class="form-control" ng-model="language"> 
    <option ng-repeat="language in languages">{{language}}</option> 
</select> 


的截圖是在這裏(注意引導CSS的使用和這裏不包括在內)。

enter image description here


你可以在控制器測試,更改是否工作

$scope.$watch('language', function (newVal, oldVal) { 
    console.log(oldVal + " -> " + newVal); 
}); 

英文 - >俄羅斯

俄語 - >西班牙語

西班牙語 - >俄語

希望這會對您有所幫助。謝謝!