角。我如何在tagName中使用变量

时间:2013-11-28 11:58:15

标签: javascript templates angularjs

我是角色的新手,我写了一个简单的代码,但它不起作用。有人可以解释我如何从输入值获取tagName。这是一个示例,当然我想在数据模型中分配这个变量,因此文本将在I,B,U或div class =“something”中,但我想在运行中更改它。

<div ng-app>
  <div>
    <input type="text" ng-model="customTag" placeholder="Enter a name here" value="b">
    <{{customTag}}>77</{{customTag}}>
  </div>
</div>

1 个答案:

答案 0 :(得分:0)

我想,你可能要为此写一个指令。我已经定义了一个名为render的指令,它监视customTag模型以更新DOM。

Working Demo

myApp.directive('render', function() {
    return {
        restrict: 'A',
        link: function(scope, element, attrs) {
            attrs.$observe('render', function(value) {
                if (value) {
                    element.html('<' + value + '>77</' + value + '>');      
                } else {
                    element.html(77);      
                }              
            });
        }
    };
});

最后使用它,如下所示。 ng-init允许您设置模型的默认值,因为值(“b”)在这种情况下不起作用。

<input ng-init="customTag='u'" type="text" ng-model="customTag" placeholder="Enter a name here" ng-change="update()"/>
<span render="{{customTag}}"></span>