0
我試圖隱藏或顯示<select>
標記,基於數組引用是否爲[]
。 <select>
標記由相同的數組支持。ng-show不適用於<select>
<select ng-show="model.people" ng-model="model.selectedPerson" ng-options="person.name for person in model.people"></select>
然而它不工作。 model.people
最初是[]
。
當添加第一個元素時,使用model.addPerson()
,我希望model.people
是真的,因此設置顯示爲真實值並最終顯示<select>
標記。
JavaScript代碼:
angular.module('app', [])
.controller('FormController', function($scope) {
var model={};
model.person=function(person){
return{
name:person.name,
age:person.age
};
};
model.people=[];
model.addPerson=function(person){
model.people.push(new model.person(person));
if(model.people){
console.log(true);
}else{
console.log(false);
}
};
model.selectedPerson=model.people[0];
$scope.model=model;
});
HTML代碼:
<form name="form" ng-controller="FormController" ng-submit="model.addPerson(model.anyPerson)" novalidate>
<input type="text" ng-model="model.anyPerson.name" ng-required="true" placeholder="Name"/><br/>
<input type="number" name="age" ng-model="model.anyPerson.age" min="15" max="100" ng-required="true" placeholder="Age"/><br/>
<button type="submit" ng-disabled="form.$invalid">Add Person</button><br/>
<select ng-show="model.people" ng-model="model.selectedPerson" ng-options="person.name for person in model.people"></select><br/>
<span ng-show="model.selectedPerson" ng-bind-template="Name: {{model.selectedPerson.name}}, Age: {{model.selectedPerson.age}}"></span>
</form>