Как установить флажок ng-checked из данных сервера с помощью AngularJS и сохранить отмеченный / непроверенный обратно в данные сервера? - PullRequest
0 голосов
/ 31 января 2019

Это должно быть очень распространенной проблемой, вызывая ng-модель для анализа данных в форме (DOM), после чего измененный флажок ng-check будет переведен обратно в значения данных, чтобы быть сохраненными на сервере.

У меня есть два флажка соответственно

<table><tbody>
        <tr>
            <td align="left">To be ignored</td><td align="left">Yes 
                <input type="checkbox" ng-model="nm_ignore" /></td>
            <td></td>
        </tr>
        <tr>
            <td align="left">To be excluded</td><td align="left">Yes 
                <input type="checkbox" ng-model="nm_exclude" /></td>
            <td></td>
        </tr>
    </tbody>
</table>

И мои данные

$scope.nm_to_ignore = _a_record._ab_ignore; // "T"
$scope.nm_to_exclude = _a_record._ab_x_style; // "F"

Моя цель:
Я хочупростой простой способ (простой в обслуживании кодовый, то есть angularJS ng-model) для установки флажков CHECKED / UNCHECKED по данным, считанным с сервера. Кроме того, Я хочу иметь возможность сохранять значения, представленные как CHECKED / UNCHECKED, в данные так же, как они поступили.

1 Ответ

0 голосов
/ 31 января 2019

Отметьте объекты в вашем DOM вашего $ scope. Замечание Я использовал атрибуты ng-true-value="'T'" и ng-false-value="'F'", чтобы сказать переводчику преобразовать мой CHECKED в значение «T», а UNCHECKED - «F» для данных, которые моя база данных хранит на сервере.

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="_assets/js-main/angular-1.5.8.min.js"></script>    
<script src="_assets/JS-Main/angular-route-1.5.8.js"></script>
    <!-- <..DOM..stuffs..> -->

    <tr>
        <td ><input type="checkbox" ng-model="nm_exclude" 
              ng-true-value="'T'" ng-false-value="'F'" /></td>
         <td ><input type="checkbox" ng-model="nm_ignore" 
              ng-true-value="'T'" ng-false-value="'F'" /></td>
    </tr>

Получение данных с сервера ->

var A1 = angular.module('_mod_1', ['ngRoute', 'ngSanitize']);
A1.config(function ($locationProvider) {
    $locationProvider.html5Mode(true);
});
A1.controller
('Controller',
    function ($scope, $location, $http) {
        angular.element(document)
            .ready(function () {
                $http.get(_endGet, config)
                 .success(function (serverdata, status, config) {
                          _a_record = serverdata;
                          /*     lines of code        */
                          $scope.nm_ignore = _a_record._ab_ignore; //"T"
                          $scope.nm_exclude = _a_record._ab_x_style; //"T" 
                  });;
            });
        //Things to Do ...
    }
);

Надеюсь, все вышеперечисленное поможет вам.Удачи!(Помните о закрытии одиночной кавычки в отображаемом значении, если оно не является числовым: ng-true-value = "'T'", оно выдаст вам ошибку, если вы их опустите!)

...