2015-05-31 4 views
0

Я получаю $ injector: unpr со следующим кодом в AngularJs1.3, который я не могу понять.Неразрешенная зависимость в модуле

index.html

<html lang="en" ng-app="directivesApp"> 
<head> 
    <title>AngularJS Directive example</title> 
    <script src="js/angular.min.js"></script> 
    <script src="js/app.js"></script> 
</head> 
<body ng-controller="directiveCtrl"> 
    <user-info user="MD"></user-info> 
    <user-info user="VP"></user-info> 
</body> 
</html> 

app.js

angular.module('directivesApp', []) 
.controller("directiveCtrl",function($scope){ 
    $scope.MD={ "firstName":"...","lastName":"..."}; 
    $scope.VP={"firstName":"...","lastName":"..."}; 
}) 
.directive("userInfo",function($scope){ 
    return{ 
    restrict:'E', 
    template:'User : <b>{{user.firstName}}</b> <b>{{user.lastName}}</b>', 
    scope:{user : "="} 
    }; 
}); 

Помощь в решении этого ценится

ответ

0

$scope, в директиве, осуществляется доступ через функции метода link или controller, и не вводится на верхнем уровне. Попробуйте это:

angular.module('directivesApp', []) 
.controller("directiveCtrl",function($scope){ 
    $scope.MD={ "firstName":"...","lastName":"..."}; 
    $scope.VP={"firstName":"...","lastName":"..."}; 
}) 
.directive("userInfo",function(){ 
    return{ 
    restrict:'E', 
    link: function (scope) { 
     // Scope using code here... 
    }, 
    template:'User : <b>{{user.firstName}}</b> <b>{{user.lastName}}</b>', 
    scope:{user : "="} 
    }; 
}); 

Here's a Codepen. Надеюсь, что это помогает!

+0

Trick должен был удалить область из .directive («userInfo», function ($ scope) - как вы намекали. – IUnknown

Смежные вопросы