如何根据另一个变量设置输入类型? (我最初的想法是)来自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>
答案 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>
感谢您的帮助!