我希望能够在一页上使用多个 ng-app="{angular.module}" 指令。我想这样做是为了使我的应用程序的各个部分更加模块化。我想,如果我可以创建 Angular 模块并将其中的几个插入到一个文档中,我就可以轻松地将这些模块插入到其他项目中。
我看到有人说你只能在你的页面上使用一个 ng-app 指令......这是真的吗?说“每个视图一个 ng-app 指令”最准确吗?
我希望不是这样,或者如果是这样的话,还是有一种最好的方法来实现高度抽象的模块化。
这是我的模块/应用程序及其控制器...
var searchModj = angular.module('searchModule', []);
var controllers = {};
controllers.SearchList = function ($scope){
$scope.coworkers = [
{name: 'Joe Bob', city: 'Ukrainia'},
{name: 'Adam Blobnovski', city: 'Logan' },
{name: 'Carlos Sanchez', city: 'Deerbushle'},
{name: 'Martin Kellerweller', city: 'Uptown'},
{name: 'John Doe', city: 'New York City'}
];
};
searchModj.controller(controllers);
var fruitModj = angular.module('fruiter', []);
controllers.SomeFruit = function ($scope) {
$scope.fruits = ['apple', 'banana', 'pear'];
};
fruitModj.controller(controllers);
好的,现在这是我的标记的相关部分......
<div ng-app="searchModule">
<div ng-controller="SearchList">
Name:
<br/>
<input type="text" ng-model="name" />
<br/>
<ul>
<li ng-repeat="coworker in coworkers | filter:name">{{ coworker.name }} - {{ coworker.city }}</li>
</ul>
<p>You are searching for <em>{{ name }}</em></p>
</div>
</div>
<div ng-app="fruiter">
<div ng-controller="SomeFruit">
<ul>
<li ng-repeat="fruit in fruits">{{ fruits }}</li>
</ul>
</div>
</div>
我认为因为它在文档中排在第一位,所以我的“searchModule”应用程序可以工作,而第二个应用程序不能。当我注释掉第一个应用程序时,第二个应用程序有效。所以看起来我正在证实我最不幸的怀疑。无论如何......如果是这种情况,那么我可以记住的最佳方法是使我的项目中的功能尽可能模块化?