Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 即使我将控制器分配给指令,数据也会从父控制器';s范围_Angularjs_Angularjs Directive - Fatal编程技术网

Angularjs 即使我将控制器分配给指令,数据也会从父控制器';s范围

Angularjs 即使我将控制器分配给指令,数据也会从父控制器';s范围,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我正在学习AngularJS指示语模块 我对在指令中使用作用域时如何工作有点困惑 我写了一个代码,请看一下 <!DOCTYPE html> <html lang="en" ng-app="MyApp"> <head> <title>Example 6</title> <script type="text/javascript" src="D:\Rahul Shivsharan\JavaScript-Framewor

我正在学习AngularJS指示语模块

我对在指令中使用作用域时如何工作有点困惑

我写了一个代码,请看一下

<!DOCTYPE html>
<html lang="en" ng-app="MyApp">
<head>
    <title>Example 6</title>
    <script type="text/javascript" src="D:\Rahul Shivsharan\JavaScript-Framework\AngularJS\angular.js"></script>
    <script type="text/javascript" src="D:\Rahul Shivsharan\JavaScript-Framework\jQuery\jquery-1.11.1.js"></script>
    <script type="text/javascript" src="D:\Rahul Shivsharan\JavaScript-Framework\BootstrapCSS\bootstrap-3.2.0-dist\js\bootstrap.js"></script>
    <link rel="stylesheet" href="D:\Rahul Shivsharan\JavaScript-Framework\BootstrapCSS\bootstrap-3.2.0-dist\css\bootstrap.css"></link>
    <link rel="stylesheet" href="D:\Rahul Shivsharan\JavaScript-Framework\BootstrapCSS\bootstrap-3.2.0-dist\css\bootstrap-theme.css"></link>
    <script type="text/javaScript">
        angular.module("MyApp",[]);
        (function(){
            angular.module("MyApp").controller("HollywoodCtrl",HollywoodCtrl);
            angular.module("MyApp").controller("BollywoodCtrl",BollywoodCtrl);
            angular.module("MyApp").directive("parentClass",parentClass);


            function parentClass(){
                var obj = {     
                    restrict : 'EA',
                    controller : "BollywoodCtrl",
                    scope: {
                        array : "=bollywoodActors"
                    },  
                    template : "<ol><li ng-repeat='actor in array'>{{actor}}</li></ol>",
                    link : function(scope,element,attrs,someCtrl){  
                        var actorList = scope.actorList, count = 0;

                        for(count = 0;count < actorList.length; count++){
                            console.log(" -+- "+actorList[count]);      
                        }                           
                    }
                }

                return obj;
            };


            function HollywoodCtrl($scope){                 
                $scope.actorList = ["Jim Carrey","Sean Connery","Tom Cruise","Samuel L Jackson","Colin Firth"]                  
            };

            function BollywoodCtrl($scope){
                $scope.actorList = ["Shahrukh Khan","Salmaan Khan","Amir Khan"]                 
            };

        })();
    </script>
</head>
<body>
    <div class="container" ng-controller="HollywoodCtrl">
        <div class="well">
            <b>Bollywood Actors</b>
            <parent-class bollywood-actors="actorList"></parent-class>
            <pre />
            <b>Hollywood Actors</b>
            <ul>
                <li ng-repeat="actor in actorList">{{actor}}</li>
            </ul>
        </div>
    </div>
</body>     

例6
angular.module(“MyApp”,[]);
(功能(){
角度模块(“MyApp”).控制器(“Hollywoodtrl”,Hollywoodtrl);
角度模块(“MyApp”).控制器(“宝莱坞DCTRL”,宝莱坞DCTRL);
angular.module(“MyApp”).指令(“父类”,父类);
函数父类(){
var obj={
限制:“EA”,
管制员:“宝莱坞”,
范围:{
数组:“=Bollywoodators”
},  
模板:“
  • {{actor}
  • ”, 链接:函数(作用域、元素、属性、someCtrl){ var actorList=scope.actorList,count=0; for(count=0;count
  • {{actor}
  • 让我向你解释一下我想做什么

    我有一个控制器“Hollywoodtrl”,它是一个父控制器,在其作用域中包含数组“actorList”中的好莱坞演员名称

    我有一个指令“parentClass”,其中我为它指定了“宝莱坞dctrl”

    现在,我在UI中需要的是,在标记“父类”中,我想显示控制器“宝莱坞dctrl”范围内的宝莱坞演员

    在指令之外,我需要展示好莱坞演员在控制器“Hollywoodtrl”的范围内

    但是

    我能看到的是,好莱坞演员出现在“父类”指令内部和外部的父控制器中

    请看这里的实例

    你能告诉我我做错了什么吗


    以及如何获得所需的输出

    您正在将一个变量传递到范围中,而不是使用该变量。因此,当您传递变量时,它是来自父级的变量,因为您不在第二个控制器内。u将宝莱坞演员传递给指令并显示它。将指令tpl更改为模板:“
  • {{actor}}
  • ”,您将看到另一个列表。