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

时间:2014-02-26 10:56:26

标签: asp.net angularjs

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

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

顺便说一句,我是AngularJs的新手。提前感谢任何帮助。

3 个答案:

答案 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;