簡體   English   中英

AngularJS-基於json輸入的load元素

[英]Angularjs - load element based on json input

我有一個情況,我收到一個json對象,並且在json數據中是一個看起來像這樣的部分

{
  "elName": "elCst3",
  "label": "Label 3",
  "type": "input",
  "content": "some text",
}

這已分配給$scope.data

對象中的類型表達式可以inputtextarea

在我的html模板中,取決於TYPE的值,我應該加載文本字段(輸入/文本)或textarea元素。

它的偽邏輯就是這樣。

IF {{data.type}} == "input" then

    <input id="data.elName" type="text" value="{{data.content}}">

ELSE IF {{data.type}} == "textarea" then

    <textarea id="data.elName">{{data.content}}</textarea>
ENDIF

我如何以最佳和最簡單的方式在Angularjs中實現這一目標?

謝謝!

在您的情況下,我會使用ng-if 就像是:

HTML

<label ng-repeat="val in list">
    <div ng-if="val.type == 'input'">
        <input id="data.elName" type="text" value="{{val.content}}"></input>
    </div>
    <div ng-if="val.type == 'textarea'">
        <textarea id="data.elName">{{val.content}}</textarea>
    </div>
</label>

JS

 $scope.list = [{
        "elName": "elCst3",
            "label": "Label 3",
            "type": "input",
            "content": "some text for input"
    }, {
        "elName": "elCst4",
            "label": "Label 3",
            "type": "textarea",
            "content": "some text for textarea"
    }];

演示小提琴

如果要根據嘗試在視圖中顯示的JSON數據切換到不同的HTML部分,可以使用ngSwitch

<div ng-repeat="val in list">
    <div ng-switch="val.type">
        <div ng-switch-when="input">
            <input type="text" value="{{val.content}}"></input>
        </div>
        <div ng-switch-when="textarea">
            <textarea cols="40" rows="5">{{val.content}}</textarea>
        </div>
        <div ng-switch-default>
            Unknown val type: {{val.type}}
        </div>
    </div>
</div>

順便說一句: 我有一個類似的問題...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM