При редактировании записи данные поступают в соответствующие поля для редактирования, но флажок не проверяется, если его значение равно 1
.
Он должен быть в проверенном состоянии, если у него есть 1
, и не проверен, если у него есть 0
, так как тип данных поля равен tinyint
. Я получаю данные из массива JSON через PHP. Я пытаюсь получить значение ng-checked="{{rec.isSpecial}}"
, но это не работает.
Вот мой HTML:
<div class="form-group">
<div class="col-lg-offset-2 col-lg-10">
<div class="checkbox c-checkbox">
<label>
<input type="checkbox" ng-checked="{{rec.isSpecial}}" ng-model="rec.isSpecial">
<span class="fa fa-check"></span>Special
</label>
</div>
</div>
</div>
Вот мой JS
$scope.rec = $resource('api/AdminArea/category/edit/:id', {
id: id
}).get(function(data) {
$scope.rec = data;
});
5 ответов
Поскольку ваши данные возвращают числа, а не значения true или false, вы можете сделать это следующим образом:
<div class="form-group">
<div class="col-lg-offset-2 col-lg-10">
<div class="checkbox c-checkbox">
<label>
<input type="checkbox" ng-checked="rec.isSpecial==1" ng-model="rec.isSpecial">
<span class="fa fa-check"></span>Special
</label>
</div>
</div>
</div>
См. fiddle для получения дополнительной информации.
'use strict';
var app = angular.module('MyApp',[]);
app.controller('myController', function ($scope) {
$scope.isSpecial =true;
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div class="form-group" ng-app ="MyApp" ng-controller="myController">
<div class="col-lg-offset-2 col-lg-10">
<div class="checkbox c-checkbox">
<label>
<input type="checkbox" ng-checked="{{isSpecial}}" ng-model="isSpecial">
<span class="fa fa-check"></span>Special
</label>
</div>
</div>
</div>
Вам вообще не нужно ng-checked
, достаточно ng-model
, чтобы это работало. Если ваш rec.isSpecial
установлен на 1
для его проверки, тогда просто ваш input
такой:
<input type="checkbox" ng-model="rec.isSpecial" ng-value="1" />
И Angular автоматически установит этот флажок.
Выражение ng-checked={{ ... }}
ожидает оператора true
или false
. Если вы установите rec.isSpecial = true
, в вашем контроллере Angular ваш код должен работать!
Вам не нужна директива ng-checked
, если вы используете ng-model
для ввода тега.
Поскольку это флажок, модель будет булевой, поэтому вам нужно выполнить приведение. Этот пример будет работать
HTML
<div data-ng-app="app">
<div data-ng-controller="MainController">
Check
<input type="checkbox" data-ng-model="isSpecial">
</div>
</div>
JS
angular.module('app', []);
angular.module('app')
.controller('MainController', mainController);
mainController.$inject = ['$scope'];
function mainController($scope){
$scope.check = 0;
$scope.isSpecial = ($scope.check === 1) ? true : false;
}
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.