簡體   English   中英

在angularjs中選擇不帶ng-option的選項

[英]select option without ng-option in angularjs

<select>
    <option>active</option>
    <option>Deactive</option>
</select>

$scope.isActive = $scope.data.gameStatus;

我的選項不是動態的,因此我認為不應使用ng-option ,如何使用選定的active選項,假設$ scope.isActive的值為true

請參閱此處ngSelected文檔。

只需在<option>上添加ng-selected="isActive"

將您的selectngModel綁定

這樣嘗試

<select ng-model="mycontrol.value">
     <option>active</option>
     <option>Deactive</option>
</select>

JS

$scope.mycontrol={
    value:''
};
$scope.mycontrol.value="active";

編輯

來自api的數據是真實的,不是“活動的”,

這樣嘗試

var flag = true;
$scope.mycontrol.value= flag  ? "active" : "Deactive"; 

這實際上是一個棘手的問題。 首先,您需要設置ngModel指令。 但是,即使您這樣做也仍然無法正常工作,因為您的模型是布爾類型,而選項值當然是字符串。 Angular將無法正確綁定此類模型。 (當然,只有當您不想使用ngOptions並希望使用簡單的靜態選項時,在這種情況下,這才完全有意義)。

幸運的是,官方文檔中包含一些提示 解決方案是再添加一個輔助指令,以將布爾值轉換為用於選擇選項的字符串,並將字符串轉換為用於從所選選項寫入模型值的布爾值。

 angular.module('demo', []).controller('MainController', function($scope) { $scope.isActive = true; }) .directive('convertToBoolean', function() { return { require: 'ngModel', link: function(scope, element, attrs, ngModel) { ngModel.$parsers.push(function(val) { return val == 'true'; }); ngModel.$formatters.push(function(val) { return val + ''; }); } }; }); 
 <script src="https://code.angularjs.org/1.4.3/angular.js"></script> <div ng-app="demo" ng-controller="MainController"> <select ng-model="isActive" convert-to-boolean> <option value="true">Active</option> <option value="false">Deactive</option> </select> {{isActive}} </div> 

所以,在這種情況下,使用ngOptions會更簡單:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM