AngularJS:如何使用AngularJS而不是Razor设置MVC模型数据值?

时间:2016-04-10 10:57:10

标签: c# angularjs asp.net-mvc razor

我使用Razor显示我的MVC项目中的所有数据:

@Html.TextBoxFor(model => model.Birthday, new {id = "birthday"})   

我是 AngularJS 的新手;现在,我想使用AngularJS,(Example)。

但现在, 我不知道如何设置模型。这样生日。
我已经设定了

ng-app="myApp"

表示div标签,包括

<label>Birthday:</label>
<adm-dtp ng-model='date'></adm-dtp>  

@*@Html.TextBoxFor(model => model.Birthday, new {id = "birthday"})*@

<script>
    var app = angular.module('myApp', ['ADM-dateTimePicker']);
    app.controller('dateController',function() {
        var self = this;
    });
</script>

2 个答案:

答案 0 :(得分:3)

好吧,你总是可以在Angular控制器中设置date模型:

<script>
    var app = angular.module('myApp', ['ADM-dateTimePicker']);
    app.controller('dateController',function() {
        var self = this;
        self.date = '@Model.Birthday';
    });
</script>

这假设您已将Angular代码放在Razor视图中,而不是单独的javascript文件。混合ASP.NET MVC和AngularJS通常是不好的做法。如果您要编写基于AngularJS的SPA应用程序,那么您可能不需要任何Razor或ASP.NET MVC。您需要的是一个ASP.NET Web API,它将由您的纯SPA Angular应用程序使用。一个简单的静态html来提供和引导您的SPA应用程序将是绰绰有余的。然后,此SPA应用程序将简单地查询您的RESTful API,以便检索引导所需的任何信息。现在你似乎试图创建一些混合物,在这种情况下可能不是最好的方法。

答案 1 :(得分:0)

如果您在视图中的java脚本全局变量中使用单独的角度控制器文件存储值,则如下所示:

&#13;
&#13;
<script>
 var date = '@Model.Birthday';
</script>
&#13;
&#13;
&#13;

现在在角度控制器文件中:

&#13;
&#13;
$scope.self.date = date ;
&#13;
&#13;
&#13;