Директива модуля против сервисного впрыска модуля - PullRequest
0 голосов
/ 31 января 2019

Я хочу убедиться, что понимаю понимание внедрения зависимостей и убедиться, что мое понимание верно.В настоящее время я следую за курсом, в котором в качестве примера используются 2 модуля: ngMessage и ngResource.В своем внедрении модуля приложения я включаю ['ngResource', 'ngMessage'].

В контроллере я внедряю службу $ resource (для ngResource).

Тогда в моем представлении html я могуиспользуйте директиву ngMessages $ error.

Мой вопрос: почему ngMessage не требует вставки в контроллер?В этом ли разница между службой ($ resource) и директивой ($ error)?

Я просто хочу убедиться, что мне ясно, почему ngMessage не требует какой-либо формы внедрения в контроллер.Если мое мышление верное, все модули, внедренные в ваше приложение, будут иметь все директивы, немедленно доступные в представлении, но любые сервисы нужно будет внедрить в контроллер.

app.js

var myApp = angular.module('myApp', ['ngResource']);

myApp.controller('mainController', function('$resource') {
    console.log($resource)
}); 
<form name="myForm">
    <input type = "text" ng-model="field" name="myField" required minlength="5"/>
    <div ng-messages="myForm.myField.$error">
        <div ng-message="required">You did not enter a field</div>
        <div ng-message ="minlength">The value entered is too short</div>
    </div>
</form>

1 Ответ

0 голосов
/ 31 января 2019

Директива доступна на уровне модуля и может использоваться в любом шаблоне в модуле или модуле, который импортирует модуль, который ее объявляет.

Сервисы внедряются как объекты в ваши контроллеры для доступа к данным из них иобмен данными между контроллерами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...