Angularjs 即使我将控制器分配给指令,数据也会从父控制器';s范围
我正在学习AngularJS指示语模块 我对在指令中使用作用域时如何工作有点困惑 我写了一个代码,请看一下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
<!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更改为模板:“