是不是可以在ASP.NET MVC 4视图中将@Model传递给ng-init
?当我这样做data-ng-init=init(@Model)
时,它在init()
函数中未定义。
$scope.init = fuynction(model){
console.log(model); // prints undefined
}
顺便说一句,我是AngularJs的新手。提前感谢任何帮助。
答案 0 :(得分:17)
正如我评论的那样,您需要在服务器端对象(例如@Model
)和客户端对象之间进行转换。
例如,如果您只想使用Name
的{{1}}属性,则可以执行以下操作:
@Model
请注意,即使在这个简单的示例中,也需要将<div ng-init="init('@Model.Name')"></div>
$scope.init = function(name){
console.log(name); // prints value of name
}
格式化为JavaScript字符串(通过在其周围加上引号)。
您可能不想使用整个 @Model.Name
对象。最好只选择您想要的字段并单独传递它们。
如果您需要从服务器访问大量数据,建议使用@Model
服务并对数据进行服务器调用。
答案 1 :(得分:5)
使用Newtonsoft.Json程序集或类似程序将模型序列化为json字符串,并将序列化结果传递给data-ng-init。
答案 2 :(得分:2)
包含@using ProjectApp.Models,然后是data-ng-init =&#34; init(@ Newtonsoft.Json.JsonConvert.SerializeObject(Model))&#34;