Javascript 将隔离作用域设置为变量
我不确定这是否确实可行,但基本上我正在尝试将指令上的隔离范围设置为一个变量,该变量将从控制器中的数组中拉入 指令:Javascript 将隔离作用域设置为变量,javascript,angularjs,angularjs-directive,angularjs-scope,Javascript,Angularjs,Angularjs Directive,Angularjs Scope,我不确定这是否确实可行,但基本上我正在尝试将指令上的隔离范围设置为一个变量,该变量将从控制器中的数组中拉入 指令: app.directive('ydConfig', function($log) { return { restrict: 'E', scope: { tag: '=' }, templateUrl: function(element, attrs) { re
app.directive('ydConfig', function($log) {
return {
restrict: 'E',
scope: {
tag: '='
},
templateUrl: function(element, attrs) {
return attrs['template'];
}
};
});
控制器中的阵列:
$scope.configHead = ['style', 'color', 'glass', 'details'];
$scope.activeTabs = ['style'];
$scope.configType = $scope.activeTabs[0];
HTML:
基本上,configHead是一个数组,其中包含yd config最终将使用的所有作用域,用户通过切换循环yd config。activeTabs通常包含一个对象,但有时在yd config正在更改范围和数据时包含两个对象。configType存在,因此我可以将当前活动的作用域作为目标并在DOM中访问它
在我的HTML中,是否有一种方法可以将标记隔离范围中的“样式”更改为configType?我尝试过{{configType}有前缀$scope和没有前缀$scope,我也尝试过没有双花括号的{configType},但我总是得到
如果我的yd配置是完全通用的,我如何将configType放入ng中?目前,我在DOM中一个接一个地配置了4个yd,每个yd都有不同的标记和ng if(直到我创建这个票证之前,还有不同的类)
我的最佳选择是创建一个返回configType的函数,并且只针对指令中的那些部分的函数吗
我已经从前面的问题中了解到了这一点,所以我知道这是可能的,但为什么我在尝试相同的方法时会出现错误?您所尝试的方法应该是有效的。您可以将
$scope.configType
传递给带有tag=“configType”
的指令,并在ng if like song if=“isTabOpen(configType)”
var-app=angular.module('app',[]);
应用程序控制器('ctrl',函数($scope){
$scope.configHead=['style','color','glass','details'];
$scope.activeTabs=['style'];
$scope.configType=$scope.activeTabs[0];
$scope.isTabOpen=功能(选项卡){
返回$scope.activeTabs.indexOf(tab)!=-1
}
});
应用程序指令('ydConfig',函数($log){
返回{
限制:'E',
范围:{
标记:'='
},
/*templateUrl:函数(元素,属性){
返回属性['template'];
}*/
模板:“{tag}}”
};
});代码>
当configType设置为父作用域时,它与具有隔离作用域的指令没有任何关系,对吗?在将其添加到“tag”时,这会改变语法吗?我现在已经到了一个地步,除了作用域之外,所有的指令都在工作,但是仅仅因为这个原因,不得不在DOM中列出该指令4次,这似乎是一种耻辱。如果它是完全通用的,它会更干净:/Ok,这里的问题显然与我预期的略有不同。我现在也得到了dups错误,而不是语法错误。我再次尝试运行它,但是我使用了示例中的模板,而不是我的templateUrl,当我单击切换时,它会输出正确的标记。我现在想知道这是否与我调用模板的方式有关,或者与实际模板本身有关。模板:{{item.title}}
我不明白您试图重复的内容仅仅是一个字符串值?你可能想发布一篇关于你目前所掌握的内容的jsfiddle。好吧,对不起,这就是我要做的:从本质上说,JS现在工作正常,但我没有正确地定位内容,所以即使模板在那里,内容也没有填充它。我应该如何定位内容?当我说“重复”时,我的意思是我曾经拥有:
等,而我想拥有:
<yd-config tag="style" template="/app/views/yd-config-item.html" ng-if="isTabOpen('style')" ng-class="{right : direction, left : !direction}" ng-animate class="{{configType}}"></yd-config>