如何在指令模板中渲染双花括号?

时间:2015-03-23 16:09:53

标签: javascript angularjs angularjs-directive

我正在与AngularJS进行后端验证集成。我需要在控件旁边显示一条错误消息。错误消息来自后端。控件由指令模板呈现。我尝试在模板中添加一个错误消息的span以及控件,但是我遇到了一个令人尴尬的情况。

以下是代码:

var myDirective = angular.module('myDirective', []);
myDirective.directive("textquestion", function() {
    return {
        template: '<input id="{{questionNumber}}" name="{{questionNumber}}" type="text" /><span ng-show="errors[{{questionNumber}}]">{{error[questionNumber]}}</span>',
        restrict: 'A',
        scope: {
            questionNumber: 'questionNumber'
        }
    };
})

正如您所看到的,我想在html中呈现{{errors['1001']}},并使用&#39; 1001&#39;作为实际的questionNumber,所以错误消息可以绑定。但是在当前代码中,由于errors['1001']在渲染时为空,因此该部分将在html中不呈现任何内容。

任何人都可以帮我了解如何在html中呈现实际的{{errors['1001']}}吗?或者有更好的方法吗?请记住,控件是动态生成的,因此questionNumber需要是动态的。此错误消息来自后端,因此绑定需要在呈现后发生。

谢谢!

1 个答案:

答案 0 :(得分:2)

ng-show中不需要{{}}。你传入ng-show的内容已经是一个表达式

<span ng-show="errors[questionNumber]">{{errors[questionNumber]}}</span>