2017-01-09 75 views
0

選擇標記所以這是我的代碼:與NG-模型沒有顯示正確的選項

<select ng-model="institution.data_collection" class="form-control" required> 
    <option value="" disabled>Please Select</option> 
    <option value="109">24 Hours</option> 
    <option value="107" onselect="">School Hours</option> 
</select> 

institution.data_collection值等於109和我預想的要選擇的選項24 Hours因爲它的109值。但是,什麼情況是我找到一個新的選項在選擇標籤說:

<option value="? number:109 ?"></option>

要通過做題我發現大多數人在控制器的陣列中定義的options這可能是在於更好的做法案件,並會解決我的問題,但是,我仍然想知道發生了什麼。

+0

刪除'NG-selected',是使用數組形式的選擇是更好的選擇.. –

+0

@ atulquest93我嘗試了不同的解決方案,並忘了,但我沒有按」對當前的情況沒有任何影響。 –

回答

2

你需要設置$ scope變量在控制器

$scope.institution ={}; 
$scope.institution.data_collection = '109'; 

DEMO

var app = angular.module("app", []); 
 

 
app.controller("ListCtrl", ["$scope", 
 
    function($scope) { 
 
    $scope.institution ={}; 
 
    $scope.institution.data_collection = '109'; 
 
    } 
 
]);
<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    <script data-require="[email protected]" data-semver="1.4.7" src="https://code.angularjs.org/1.4.7/angular.js"></script> 
 
    <link rel="stylesheet" href="style.css" /> 
 
    <script src="script.js"></script> 
 
</head> 
 

 
<body ng-app='app'> 
 
    <div ng-controller="ListCtrl"> 
 
    <select ng-model="institution.data_collection" class="form-control" required> 
 
    <option value="" disabled>Please Select</option> 
 
    <option value="109" ng-selected="">24 Hours</option> 
 
    <option value="107" onselect="">School Hours</option> 
 
</select> 
 
    </div> 
 
</body> 
 

 
</html>

+0

工作正常,所以您認爲問題是$ scope.institution.data_collection是一個數字,options標籤中的值是字符串? –

+0

謝謝。它工作時,我解析到像這樣的字符串:$ scope.institution.data_collection = $ scope.institution.data_collection.toString(); –

+0

標記爲答案,如果它有幫助 – Sajeetharan

1

使$scope.institution.data_collection = "109",它必須工作。任何HTML元素默認都將它的值設置爲字符串而不是數字,因此您需要將字符串值分配給其模型以正常工作。其他選項是使用ng-options,那麼你將能夠將數值分配爲模型。

1
<select ng-model="institution.data_collection" ngChange="expression()" class="form-control" required> 
    <option value="?">Please Select</option> 
    <option value="109">24 Hours</option> 
    <option value="107">School Hours</option> 
</select> 

你不應該寫 「ONSELECT」 的選項,你有將該屬性分配給選擇標籤。

腳本:從109

$scope.expression = function(){ 
$scope.institution // selected value 
// write your logic here 
}