如何将@Model传递给Angular ng-init

Beg*_*ner 3 asp.net angularjs

是不是可以将@Model传递给ng-initASP.NET MVC 4视图?当我这样做时,data-ng-init=init(@Model)它在init()函数中是未定义的.

$scope.init = fuynction(model){
    console.log(model); // prints undefined
}
Run Code Online (Sandbox Code Playgroud)

顺便说一下,我是AngularJs的新手.任何帮助都提前感谢.

Dav*_*yon 17

正如我评论的那样,您需要在服务器端对象(例如@Model)和客户端对象之间进行转换.

例如,如果您只想使用Name属性,则@Model可以执行以下操作:

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

$scope.init = function(name){
    console.log(name); // prints value of name
}
Run Code Online (Sandbox Code Playgroud)

请注意,即使在这个简单的示例中,也需要格式化@Model.Name为JavaScript字符串(通过在其周围加上引号).

可能,您不想使用整个 @Model对象.最好只选择您想要的字段并单独传递它们.

如果需要从服务器访问大量数据,建议使用$http服务并对数据进行服务器调用.

  • 即使我传递@ Model.Name它仍然是null.我用过:`data-ng-init ="init(@ JsonConvert.SerializeObject(Model))`.它工作正常. (9认同)

lav*_*rik 5

使用Newtonsoft.Json程序集或类似程序将模型序列化为json字符串,并将序列化结果传递给data-ng-init.