Я хочу иметь возможность использовать несколько директив 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" работает, а второе - нет. Когда я комментирую первое приложение, второй работает. Похоже, я подтверждаю мои самые неудачные подозрения. Независимо... если это так, то какой лучший подход я могу иметь в виду, чтобы сделать функциональность моих проектов максимально возможной по модулю?