如何根据angularjs中的变量设置输入类型?

时间:2013-11-26 17:39:16

标签: html angularjs

如何根据另一个变量设置输入类型? (我最初的想法是)来自onclick事件的指令触发器,它应该设置输入类型。我想过使用指令但不确定

第一

//loop
<a class="orgTitle" id="@c.Id" data-ng-click="selectQuestion(@c.Id, @c.SelectionTypeId);" style="cursor:pointer">@c.ProgramName</a>

,然后

$scope.selectQuestion = function(id, selectionTypeId) {//call returns data and push to QuestionList}

最后

<div data-ng-repeat="question in angularPage.QuestionList">
<span>{{question.Question}}</span><br/>
<span>//directive to get my answer type, whether radiobutton or textbox</span>

2 个答案:

答案 0 :(得分:2)

尝试编写如下指令: 伪代码,未经测试!

angular.module('inputType', [])
  .directive('inputType', function (/**injects here*/) {
    return {
      restrict: 'A',
      scope: false,
      link: function (scope, element, attr) {
        var inputType = scope.$eval(attr.inputType);
        element.attr('type', inputType);
      }
  })
});

然后在html中:

<input input-type="myDynamicInputType" />

答案 1 :(得分:0)

我......我的意思是,我们想通了!因为jquery限制了类型属性的改变,所以我在html输入类型上做了一个追加。

<强> HTML

<input-type question-type="question.myDynamicInputType" />

<强> JS

.directive('inputType', function () {
    return {
        restrict: 'E',
        link: function (scope, element, attr) {
            $(element).append('<input type="' + scope.$eval(attr.inputType) + '" />');
        }
    }
});

<强>元素

<input-type question-type="question.myDynamicInputType">
    <input type="number">
</input-type>

感谢您的帮助!