Javascript 使用动态值的角度指令
我试图在angular.js中编写一个简单的json漂亮打印机指令。我有:Javascript 使用动态值的角度指令,javascript,angularjs,directive,Javascript,Angularjs,Directive,我试图在angular.js中编写一个简单的json漂亮打印机指令。我有: (function(_name) { function prettyJson() { return { restrict: 'E', template: '', link: function($scope, $element, $attr) { console.log($element.text
(function(_name) {
function prettyJson() {
return {
restrict: 'E',
template: '',
link: function($scope, $element, $attr) {
console.log($element.text());
//$element.html(angular.toJson(angular.fromJson($element.text()), true));
}
};
}
angular
.module('ourApp')
.directive(_name, prettyJson);
})('prettyJson');
在我看来,我正在做:
<pretty-json>{{ auth.get() }}</pretty-json>
{{auth.get()}
问题是console.log($element.text())
返回为{{auth.get()}
而不是函数调用auth.get()
的角度编译结果
如何使指令使用函数调用的结果?我将切换到使用属性指令,并使用
$attr.$observe()
函数设置类似于$watch
的机制,该机制将在属性的插值每次更改时调用侦听器函数
指令代码:
(function(_name) {
function _directive() {
return {
restrict: 'A',
link: function($scope, $element, $attr) {
$attr.$observe(_name, function (json) {
$element.text(angular.toJson(angular.fromJson(json), true));
});
}
};
}
angular
.module('ourApp')
.directive(_name, _directive);
})('prettyJson');
标记中的用法:
<pre pretty-json="{{ auth.get() }}"></pre>
请参阅my。您可以将要格式化的内容作为参数传递给指令。e、 g: JS
(函数(\u名称){
函数prettyJson(){
返回{
限制:'E',
范围:{
prettyJson:“=”
},
模板:“{{prettyJson}| json}}”,
<pretty-json="auth.get()"></pretty-json>
};
}
有棱角的
.module('ourApp')
.directive(_name,prettyJson);
})('prettyJson');
HTML
您是否尝试过转置:true?
<pretty-json="auth.get()"></pretty-json>