2016-04-19 16 views
5

Q.なぜドロップダウンに値が表示されないのですか? は、ここで私はハードコードされたオプションでAngularJSを選択

<div ng-app="myApp"> 
<div ng-controller="MyCtrl"> 
    <select ng-model="myModel.Active" convert-to-number> 
     <option value="-1">Select</option> 
     <option value="1">Yes</option> 
     <option value="2">No</option> 
     <option value="3">Maybe</option> 
    </select> 
    <span>{{myModel.Active}}</span> 
</div> 
</div> 

javascriptの

var myApp = angular.module("myApp",[]); 
myApp.controller("MyCtrl", function($scope){ 
     $scope.myModel = {}; 
     $scope.myModel.Active=2; // 

}); 

JS-フィドルリンクを持っているJavaScriptコードでからhttps://jsfiddle.net/shatherali/4mxwzL5y/19/

編集:私が使用したくないのでご注意ください文字列値。アクティブは数値でなければなりません。

+0

'変換ツーnumber' http://stackoverflow.com/a/34114258/652669からは動作しませんか? –

+0

私は少なくともatleast、私は私が把握することができない間違ったことをやっているかもしれません。私はfiddleをconvert-to-numberで更新しました – ATHER

+0

私の答えを見て、デモを 'convert-to-number'でリンクしました。あなたが助けてくれることを願っています –

答えて

3

これはあなたの問題を解決します

var myApp = angular.module('myApp', []); 

myApp.controller('MyCtrl', function ($scope) { 
     $scope.myModel = {}; 
     $scope.myModel.Active = '2'; // it's a string 
}); 

DEMO


convert-to-numberディレクティブが正常に動作します。

var myApp = angular.module('myApp', []); 

myApp.directive('convertToNumber', function() { 
    return { 
     require: 'ngModel', 
     link: function(scope, element, attrs, ngModel) { 
      ngModel.$parsers.push(function(val) { 
       return parseInt(val, 10); 
      }); 
      ngModel.$formatters.push(function(val) { 
       return '' + val; 
      }); 
     } 
    }; 
}); 

DEMO

+0

おかげで、私はちょうど私の質問を更新する、私は文字列に値を変更することはできませんが、番号を維持する必要があります – ATHER

+0

基本的にソリューションは、文字列の値を使用するか、あなたがしたように)、何故convert-to-numberディレクティブが組み込まれていないのか? – ATHER

+0

これは組込みディレクティブではありません! :)実際には 'ng-options'属性で' select'ディレクティブを使用します。デフォルトのオプションを上書きするための 'option'指示文を実行していたはずですが、そうしなかったので、文字列値を使用したり、ハックする必要があります。 :/ –

関連する問題