Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用动态值的角度指令_Javascript_Angularjs_Directive - Fatal编程技术网

Javascript 使用动态值的角度指令

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

我试图在angular.js中编写一个简单的json漂亮打印机指令。我有:

(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>