2016-12-15 18 views
0

こんにちは私は奇妙な質問があります。私はフォームを作成する必要がありますが、フィールドは各ユーザーごとに異なるため、aまたはaとすることができます。私はそのタイプ入力を動的に変更してください

<div ng-controller="myCtrl" ng-repeat="x in prova"> 
    <input type = "{{x}}"> 
</div> 

そしてこの

app.controller('controller',['$scope', function($scope){ 
    $scope.prova = [ 
     'text', 
     'check-box'  
    ] 
}); 

のようなコントローラのような何かをするために、角を試みたが、私はそれが動作しないと思って。

はあなたの助けをいただき、ありがとうございます。

+1

それは正常に動作しなければなりません。公開後に表示元を確認してください –

+0

何が問題なのですか? – Carcigenicate

+0

IEで動作しない可能性があります。http://stackoverflow.com/questions/2566394/changing-the-input-type-in​​-ie-with-javascript –

答えて

2

ng-switchディレクティブを使用すると、タイプがxと一致する場合にのみ正しい入力タイプを表示できます。

<div ng-controller="myCtrl" ng-repeat="x in prova" ng-switch="x"> 
<input type="text" ng-switch-when="text"> 
<input type="checkbox" ng-switch-when="check-box"> 
<textarea ng-switch-when="textarea"></textarea> 
</div> 

さらに詳しい情報: https://docs.angularjs.org/api/ng/directive/ngSwitch

+0

素晴らしいです!タイ! – Daveus

0

あなたは依存性注入の閉じ角括弧を逃しました。これはうまくいくでしょう。

app.controller('controller',['$scope', function($scope){ 
     $scope.prova=[ 
     'text', 
     'check-box'  
     ] 
}]); 
0

plunkr included

それは私のために動作します。ここでは、あなたのコードを模倣する非常に単純な例がplunkrです。

app.controller('MainCtrl', function($scope) { 
    $scope.name = 'World'; 

    $scope.arrTypes = ['submit', 'text', 'button', 'password', 'month']; 
}); 

とのindex.htmlで...:

<div ng-repeat = "inpType in arrTypes"> 

    <input type={{inpType}} name="" id="" value={{inpType}} /> 
</div> 
0

いくつかのコードの変更:

  • checkboxcheck-boxを交換してください。
  • コントローラー機能でcontrollermyCtrlに置き換えてください。

の作業のデモ:

コントローラー:

var myApp = angular.module('myApp',[]); 

myApp.controller('myCtrl', function($scope) { 
    $scope.prova = [ 
     "text", 
     "checkbox"  
    ] 
}); 

ビュー:

<div ng-app="myApp" ng-controller="myCtrl"> 
    <div ng-repeat="x in prova"> 
    <input type = "{{x}}"> 
</div> 
</div> 
関連する問題