Je suis nouveau dans AngularJS et un peu confus avec les choses directives. Dans le code ci-dessous, j'ai besoin de créer un champ de saisie avec une directive qui est dans un module d'externalisation et de me concentrer dessus avec ma directive personnalisée.
Attention, je ne peux pas changer le module sous-traiter ...Comment déclencher une directive après un module hors de mon module principal dans angularjs
myHtml.html
<body ng-app="main" ng-controller="myCtrl">
<my-field></my-field>
</body>
Outsource.js
var app2 = angular.module('pain', []);
app2.directive('myField', [function() {
return {
scope.f = 'focus-me';
},
template: 'name: <input type="text" class="{{f}}"/>' +
'<br/>' +
'input class is: \"{{f}}\"'
}
}]);
myApp.js
var app1 = angular.module('main', ['pain']);
app1.controller('myCtrl', ['$scope', function($scope) {
$scope.state = true;
}]);
app1.directive('focusMe', ['$timeout', '$parse', function($timeout, $parse) {
return {
restrict: 'C',
link: function(scope, element) {
scope.$watch(scope.state, function() {
console.log('value=', scope.state);
if (scope.state === true) {
$timeout(function() {
element[0].focus();
}, 20);
}
});
}
};
}]);
Fiddle
fiddler
Il serait ok avec quelque chose comme le code ci-dessous, mais je ne peux pas changer le code de sous-traiter.
Il fonctionne
fiddler