Вопрос: Как я могу передать @Model в Angular ng-init


Невозможно передать @Model на ng-init в представлении ASP.NET MVC 4? Когда я это делаю data-ng-init=init(@Model) он не определен в init() функция.

$scope.init = fuynction(model){
    console.log(model); // prints undefined
}

Кстати, я новичок в AngularJs. Любая помощь приветствуется заранее.


3


источник


Ответы:


Сериализуйте модель в строку json, используя сборку Newtonsoft.Json или аналогичную, и передайте результат сериализации в data-ng-init.


5



Как я уже говорил, вам нужно перевести между вашими серверными объектами (например, @Model) и клиентских объектов.

Например, если вы просто хотели использовать Name собственностью @Model вы можете сделать что-то вроде этого:

<div ng-init="init('@Model.Name')"></div>

$scope.init = function(name){
    console.log(name); // prints value of name
}

Обратите внимание, что даже в этом простом примере необходимо отформатировать @Model.Name в строку JavaScript (путем размещения котировок вокруг нее).

Возможно, вы не хотите использовать все   @Model объект. Лучше всего выбирать только те поля, которые вы хотите, и передавать их индивидуально.

Если вам нужен доступ к большому количеству данных с сервера, рекомендуется использовать $http службы и сделать вызов сервера для данных.


17



inlcude @using ProjectApp.Models, затем data-ng-init = "init (@ Newtonsoft.Json.JsonConvert.SerializeObject (Model))"


2