Как передать параметр foreach из HTML в контроллер с помощью knockoutJs - PullRequest
0 голосов
/ 10 декабря 2018

Я хочу синтаксический анализ foreach из CSHTML.используя foreach от knockout.js <div data-bind="foreach: viewPjsp(1)">.

Javascipt:

function ColumnInput(Id, NameColumn) {
  var self;
  self = this;
  self.Id = ko.observable(Id || null);
  self.NameColumn = ko.observable(NameColumn || null);
}

(function () {
'use strict';
function ElicensingPjspViewModel() {
    var self = this;

    self.viewPjsp = ko.observableArray([]);

    self.getViewPjsp = function (data, event) {
        var url;

        $.ajax({
            type: "GET",
            url: $.rootDir + 'PJSP/PjspEvaluationDetail?AspectId=1', --> here parameter I want to parsing
            success: function (data) {
                var result;
                console.log(data);

                result = ko.utils.arrayMap(data.permission, function (item) {
                    return new KolomInput(item.Id, item.NameColumn);
                });

                self.viewPjsp(result);
            },
            error: function (xhr) {
                alert(xhr.responseText);
            }
        });
    };
    self.getViewPjsp();
}

ko.applyBindings(new ElicensingPjspViewModel(), document.getElementById('pjsp_prinsipal'));
}());

Этот Javascript не был использован параметр.Как вызвать viewPjsp (1), а затем отправить по URL в ajax, используя параметр ?AspectId=xxxx.Как передать параметр нокаута из HTML в JavaScript

1 Ответ

0 голосов
/ 11 декабря 2018

Когда массив используется с привязкой нокаута foreach, он использовал текущий объект итерации в качестве контекста данных для разметки html, содержащейся в элементе bound foreach html.Таким образом, вы можете сделать что-то вроде следующего фрагмента.Я добавил дополнительную функциональность, чтобы позволить клику по строке таблицы, чтобы показать идентификатор человека.Я оставлю вам возможность изменить пример в соответствии с вашими потребностями.

function getData(data){
  alert("The Id of the person is " + data.id);
}

ko.applyBindings({
        people: [
            { firstName: 'Bert', lastName: 'Bertington', id: 1 },
            { firstName: 'Charles', lastName: 'Charlesforth', id: 2 },
            { firstName: 'Denise', lastName: 'Dentiste', id: 3 }
        ]
    });
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>

<!-- example from here - https://knockoutjs.com/documentation/foreach-binding.html -->
<table class="table">
    <thead>
        <tr><th>First name</th><th>Last name</th></tr>
    </thead>
    <tbody data-bind="foreach: people">
        <tr data-bind="click: getData">
            <td data-bind="text: firstName"></td>
            <td data-bind="text: lastName"></td>
        </tr>
    </tbody>
</table>

Для более подробного объяснения посмотрите документацию по выбыванию, откуда взялся этот пример. Knockout "foreach" Binding

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...