Angularjs 在一个元素中组合两个文本操作指令
编辑:这个问题的答案是 我有两个角度指令,它们都转换文本;一个是从MarkDown到HTML-see,一个是从MathJax-LaTeX到HTML-see。为了简单起见,让我们称之为Angularjs 在一个元素中组合两个文本操作指令,angularjs,angularjs-directive,Angularjs,Angularjs Directive,编辑:这个问题的答案是 我有两个角度指令,它们都转换文本;一个是从MarkDown到HTML-see,一个是从MathJax-LaTeX到HTML-see。为了简单起见,让我们称之为 <div directive1="textCtrl.body"></div> <div directive2="textCtrl.body"></div> 这两个指令看起来大致相同 app.directive('directive1', function ($com
<div directive1="textCtrl.body"></div>
<div directive2="textCtrl.body"></div>
这两个指令看起来大致相同
app.directive('directive1', function ($compile) {
return {
require: "ngModel",
restrict: 'A',
priority: 10,
link: function (scope, element, attrs, ngModel) {
scope.$watch(
function() {return ngModel.$modelValue;},
function(modelValue) {
modelValue += "1"; // do something meaningful here one day
element.html(modelValue);
});
}
};
});
如果directive1的优先级低于directive2的优先级,则首先执行它。但是,directive2接收的元素内容仍然是原始模型值,而不是由directive1操纵的内容。因此,输出中只有2个附加到modelValue
知道哪里出了问题吗?尝试使用指令的Priority属性。@RobJ您能更具体一点吗?如何将两个指令btf markdown和mathjax组合成一个元素?是否尝试按所需顺序将这两个属性添加到div中?@embee all和textCtrl.body参数?那不行;似乎只有优先级较高的指令才被应用。有关指令的优先级,请参见示例
app.directive('directive1', function ($compile) {
return {
require: "ngModel",
restrict: 'A',
priority: 10,
link: function (scope, element, attrs, ngModel) {
scope.$watch(
function() {return ngModel.$modelValue;},
function(modelValue) {
modelValue += "1"; // do something meaningful here one day
element.html(modelValue);
});
}
};
});