无法在MVC布局中使用Angular应用程序

时间:2016-01-11 01:36:10

标签: javascript asp.net angularjs asp.net-mvc asp.net-mvc-3

我有一个使用布局的MVC网站, 在布局页面中,我使用Angular App,模型和控制器,一切都像它应该的那样,在我的一个页面中(显示在布局中)我想使用另一个Angular App&控制器具有一些非常基本的功能,你可以在这里看到主要的想法: Plunker for example

更多信息:

  • 我引用了布局.js标记中的两个<head>文件:

    <script src="~/Scripts/AdminVM.js"></script>
    <script src="~/Scripts/ShopVM.js"></script>
    
  • 我的布局页面中使用第一个应用的所有代码都在两个<div>标记之间,第一个带有ng-app = "FirstApp",第二个带有ng-controller = "FirstController"

    < / LI>
  • 我试过了两个:

    1. 将两个<div>标记与ng-app = "SecondApp"ng-controller = "SecondController"放在我的.cshtml文件中,然后插入我的代码。
    2. 将两个<div>标记放在我的布局页面正文中,并在它们之间插入@RenderBody()标记。

我不知道我在这里做错了什么,即使最简单的事情也不起作用:

ShopVM.js

var app = angular.module("ShopApp", []);
app.controller("ShopViewModel", function ($scope, $http) {
    $scope.test = "Test123";
});

Shop.cshtml(不是布局文件)

<div ng-app="ShopApp">
    <div ng-controller="ShopViewModel">
        <ul class="nav nav-tabs nav-justified">
            <li role="presentation" class="active"><a href="#">Home</a></li>
            <li role="presentation"><a href="#">Cat1</a></li>
            <li role="presentation"><a href="#">Cat2</a></li>
        </ul>
        <div>{{test}}</div>

        <input id="Text1" type="text" ng-model="Shop.Test"/>

    </div>
</div>

我所看到的是一个简单的测试: {{test}}

我的代码出了什么问题?

1 个答案:

答案 0 :(得分:2)

  

在我的一个页面中(显示在布局中)我想使用另一个Angular App&amp;控制器

angular不支持嵌套的应用程序(因为你在布局页面中包含第一个,第二个嵌套在第一个中)