如何使用模型数据和角度js

时间:2015-10-05 18:23:57

标签: angularjs asp.net-mvc

我想以这种方式设计我的页面。假设当第一次请求到达控制器时,模型数据将传递给视图,而角度将捕获该数据并构建表格UI。

我从这个链接http://forums.asp.net/t/1937736.aspx?return+json+for+knockout+from+action+method+when+page+render+to+populate+html+controls

找到了一个与MVC和淘汰js的链接

模型

public class MyData{

   public int Value1 {get;set;}
   public int Value2 {get;set;}
}

行动方法

public ActionResult Index()
{
    List<MyData> data = new List<MyData>(); //change this with how you retrieve data
    return View(data);
}

视图

<script type="text/javascript">
$(function(){
   var dataObject = JSON.parse('@Html.Raw(Json.Encode(Model.ToList()))');
});
</script>

我不希望在客户端页面呈现时从客户端调用服务器端功能,而我想从服务器端在客户端发出数据,而Angular将捕获它并填充UI。告诉我如何使用代码示例。感谢

1 个答案:

答案 0 :(得分:1)

由于两个原因,您不希望该变量包含在$(function(){})中。

首先它创建一个闭包,这样你就无法从包装函数外部访问它,然后它就不会被定义,直到你需要它之​​后的就绪事件发生。

只是做:

<script type="text/javascript">    
   var dataObject = JSON.parse('@Html.Raw(Json.Encode(Model.ToList()))');    
</script>

然后,您可以从角度内的任何位置访问该全局变量,以将其传递给服务,常量或您想要使用它的任何内容。

请记住,angular只是javascript,因此javascript范围规则适用,任何全局变量都位于范围链的顶部