AngularJS指令:将HTML属性作为字符串,用作字典键
AngularJS Directives: Take a HTML attribute as a string, used as a dictionary key
>我想做一个方程标签,并使用标签属性来查找要使用的公式。为此,我有以下应用程序:
(function(){
var app = angular.module('mathDocument', []);
app.directive('equation', function(){
return {
restrict: 'E',
scope: {
label: '@label'},
templateUrl: 'eqnElement.html',
};
});
app.controller("DocumentController", function(){
this.equations = {
"mainresult": { labeled: true,
label: 'mainresult',
body: 'e^{i''pi} = -1',
}
};
});
})();
以及 eqnElement 中的一个模板.html:
<body ng-controller="DocumentController as doc">
<div>
{{ doc.equations[label].body }}
</div>
</body>
但是,当我尝试使用公式标签时,
<equation label="mainresult"></equation>
我最终什么也得不到。如果我改用{{ label }}
,我最终会看到mainresult
作为模板的输出。
从我所读到的内容来看,隔离范围的使用与控制器一起玩得很糟糕,可能是问题所在,但我很难让我的调试器向我展示任何有用的东西。有没有办法做到这一点,或者我应该考虑以不同的方式设计它?
如果将equations
也传递给指令范围,则可以访问它们:
(function(){
var app = angular.module('mathDocument', []);
app.directive('equation', function(){
return {
restrict: 'E',
scope: {
label: '@label',
equations: '='
},
templateUrl: 'eqnElement.html',
};
});
app.controller("DocumentController", function($scope){
$scope.equations = {
"mainresult": { labeled: true,
label: 'mainresult',
body: 'e^{i''pi} = -1',
}
};
});
})();
调用指令时:
<equation equations="equations" label="mainresult"></equation>
方程.html:
<div>
{{ equations[label].body }}
</div>
您从未将 doc 绑定到指令中的范围。注入方程服务并在作用域中调用它 doc,然后它就会起作用。
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- javascript结合了数组和字典
- jQuery中是否内置了任何字符串格式化函数
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- 在构建字典时,作为关键字的变量会自动变为字符串
- 检查字符串是否在字典内的数组中
- JS/Jquery:字符串到单词的文本分割脚本使用字典和最长匹配
- AngularJS指令:将HTML属性作为字符串,用作字典键
- 按字符串索引访问字典对象
- Javascript 字典到 html 数据字符串
- 如何从Django的字典字符串中获取值
- 如何检查字典中的特定字符串
- 根据字典替换字符串中的短语
- 将字符串拆分为字典单词和非字典单词
- 从字典到字典的字符串
- 将字符串转换为javascript字典
- Javascript字符串到数组/字典
- 如何将javascript字典转换为编码的url字符串
- 如何使用Javascript中的字符串来验证两个独立JSON字典中的数据
- 试图将对象转换为javascript []{}- c#键值集合或字典
or<字符串,stri