Angularjs 在同一页上使用多个指令

Angularjs 在同一页上使用多个指令,angularjs,angularjs-directive,angularjs-scope,Angularjs,Angularjs Directive,Angularjs Scope,我试图在一个页面中多次使用同一指令,我知道我需要创建独立的作用域,但我没有做到这一点。 有人能给我一些提示吗 这是我的html: <!DOCTYPE html> <html lang="en" ng-app="ui.instagram"> <head> <base href="/"> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible"

我试图在一个页面中多次使用同一指令,我知道我需要创建独立的作用域,但我没有做到这一点。 有人能给我一些提示吗

这是我的html:

    <!DOCTYPE html>
<html lang="en" ng-app="ui.instagram">

<head>
    <base href="/">
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- Libs -->
    <script src="js/custom/jquery-2.1.1.js"></script>
    <!-- version 1.2.19 -->
    <script src="js/custom/angular.min.js"></script>

    <!--Custom Directives-->
    <script src="js/custom/ui-instagram.js"></script>

</head>

<body>
    <div ui-instagram user-id='xxxxx' client-id="xxxxxx"></div>
    <img ng-repeat="gram in grams" ng-attr-src="{{ gram.images.standard_resolution.url }}"></img>

    <div ui-instagram user-id='xxxxx' client-id="xxxxxx"></div>
    <img ng-repeat="gram in grams" ng-attr-src="{{ gram.images.standard_resolution.url }}"></img>

</body>

</html>

我会将指令的责任提高一个级别,并使其负责渲染图像,而不是让您的控制器视图执行该操作:

将指令更改为:

.directive('uiInstagram', function (Instagram) {
        return {
            restrict: 'EA',
            scope: {
                userId: '=',
                clientId: '='
            },           
            templateUrl:'instagramTpl.html'
            link: function (scope,element, attrs) {
                scope.grams = [];
                Instagram.get(scope.userId, scope.clientId, function (grams) {
                    scope.grams = grams;
                });
            }
        };
    });
以及
instagramTpl.html

 <img ng-repeat="gram in grams" ng-src="{{ gram.images.standard_resolution.url }}"></img>
视图中的用法:

<div ng-repeat="user in users">
 <div ui-instagram user-id='user.id' client-id="user.clientId//or whatever"></div>
</div>

我会将指令的责任提高一个级别,并让它负责渲染图像,而不是让您的控制器视图执行以下操作:

将指令更改为:

.directive('uiInstagram', function (Instagram) {
        return {
            restrict: 'EA',
            scope: {
                userId: '=',
                clientId: '='
            },           
            templateUrl:'instagramTpl.html'
            link: function (scope,element, attrs) {
                scope.grams = [];
                Instagram.get(scope.userId, scope.clientId, function (grams) {
                    scope.grams = grams;
                });
            }
        };
    });
以及
instagramTpl.html

 <img ng-repeat="gram in grams" ng-src="{{ gram.images.standard_resolution.url }}"></img>
视图中的用法:

<div ng-repeat="user in users">
 <div ui-instagram user-id='user.id' client-id="user.clientId//or whatever"></div>
</div>

我会将指令的责任提高一个级别,并让它负责渲染图像,而不是让您的控制器视图执行以下操作:

将指令更改为:

.directive('uiInstagram', function (Instagram) {
        return {
            restrict: 'EA',
            scope: {
                userId: '=',
                clientId: '='
            },           
            templateUrl:'instagramTpl.html'
            link: function (scope,element, attrs) {
                scope.grams = [];
                Instagram.get(scope.userId, scope.clientId, function (grams) {
                    scope.grams = grams;
                });
            }
        };
    });
以及
instagramTpl.html

 <img ng-repeat="gram in grams" ng-src="{{ gram.images.standard_resolution.url }}"></img>
视图中的用法:

<div ng-repeat="user in users">
 <div ui-instagram user-id='user.id' client-id="user.clientId//or whatever"></div>
</div>

我会将指令的责任提高一个级别,并让它负责渲染图像,而不是让您的控制器视图执行以下操作:

将指令更改为:

.directive('uiInstagram', function (Instagram) {
        return {
            restrict: 'EA',
            scope: {
                userId: '=',
                clientId: '='
            },           
            templateUrl:'instagramTpl.html'
            link: function (scope,element, attrs) {
                scope.grams = [];
                Instagram.get(scope.userId, scope.clientId, function (grams) {
                    scope.grams = grams;
                });
            }
        };
    });
以及
instagramTpl.html

 <img ng-repeat="gram in grams" ng-src="{{ gram.images.standard_resolution.url }}"></img>
视图中的用法:

<div ng-repeat="user in users">
 <div ui-instagram user-id='user.id' client-id="user.clientId//or whatever"></div>
</div>


在视图中,部分想法是这样写不同的ID,为什么会得到一个空白页?有错误吗?请尝试发布一个plunk。对不起,没有plunk或Fiddle就说不出什么了。您应该为客户端id和用户id传递什么?你能给出一些值吗?如果能回答你的问题,你能接受我的回答,我将不胜感激:)考虑到部分想法是这样写不同的ID,为什么你会得到一个空白页?有错误吗?请尝试发布一个plunk。对不起,没有plunk或Fiddle就说不出什么了。您应该为客户端id和用户id传递什么?你能给出一些值吗?如果能回答你的问题,你能接受我的回答,我将不胜感激:)考虑到部分想法是这样写不同的ID,为什么你会得到一个空白页?有错误吗?请尝试发布一个plunk。对不起,没有plunk或Fiddle就说不出什么了。您应该为客户端id和用户id传递什么?你能给出一些值吗?如果能回答你的问题,你能接受我的回答,我将不胜感激:)考虑到部分想法是这样写不同的ID,为什么你会得到一个空白页?有错误吗?请尝试发布一个plunk。对不起,没有plunk或Fiddle就说不出什么了。您应该为客户端id和用户id传递什么?如果我的回答能回答你的问题,如果你能接受我的回答,我将不胜感激:)