为什么在引用控制器时没有angularjs代码呈现?

时间:2014-11-29 06:06:24

标签: asp.net-mvc angularjs visual-studio angularjs-scope

我在VS.NET 2013中创建了一个新的asp.net MVC应用程序。在_Layout.cshtml中,我引用了angularjs库(Google开发者网站)。我还定义了一个名为" con1"并创建一个变量。

_Layout.cshtml:     

<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.4/angular.min.js"></script>
<script type="text/javascript">
   function con1($scope) {
     $scope.somestring = "some string";
   }
</script>

Index.cshtml:

<div>
{{1+1}}
</div>

以上工作正常并呈现&#34; 2&#34;。

的结果

当我将div更改为以下内容并开始尝试访问控制器中的 somestring 变量时,我得到实际的AnguarJS代码而不是结果。

<div ng-controller="con1">
{{1+1}}
</div>

输出:&#34; {{1 + 1}}&#34;

知道为什么添加控制器引用会破坏它吗?这似乎是VS.NET特有的。我有一个jsfiddle在这里工作正常:http://jsfiddle.net/jpswdzxu/。这基本上是VS.NET项目的输出。

1 个答案:

答案 0 :(得分:1)

您需要定义Angular应用程序,否则它将无法工作:

<script type="text/javascript">
    var myApp = angular.module('myApp',[])

    .controller('myAppCtrl', function($scope) {

        $scope.somestring = 'teststring';
    });
</script>

然后,HTML应为:

<body ng-app="myApp">

    <div ng-controller="myAppCtrl">
        {{somestring}}
    </div>
</body>

或者,使用你的jsfiddle,它将是:

<div ng-app="myApp" ng-controller="myAppController">
    {{1+1}}
    <br>
    {{somestring}}
</div>

angular.module('myApp',[])

.controller('myAppController', function ($scope) {
    $scope.somestring = "some string";
});

祝你好运!