簡體   English   中英

AngularJS:綁定到所有對象屬性?

[英]AngularJS: Bind to all object properties?

我有一個Model,它接受一個可以包含任何屬性集的對象。

我想知道我是否可以綁定到每個對象屬性,而不提前知道屬性值。

以此為例

var object1 = 
{
    Name: '1',
    Identifier: '12345',
    Password: 'password'
}

var object2  =
{
    Name: '2',
    Identifier: 'object_two'
}

var objects = [object1,object2];

我的對象可以具有不同且唯一的屬性,我想將其綁定到表單。

我知道我可以使用for(對象中的var屬性)並遍歷每個對象 - 但我可以使用AngularJS綁定做同樣的事情嗎?

我想做一些事情:

<ul><li ng-repeat="attrib in obj">
                {{attrib}}
            </li</ul>

編輯:感謝下面的回答,我進一步了解。 我似乎無法與此實現雙向綁定。 這個小提琴說明了我要做的事情:

http://jsfiddle.net/EpqMc/17/

我基本上想要使用這樣的東西綁定:

<p ng-repeat="(key,value) in obj">                    
                    {{key}} : <input ng-model="obj[key]" />

                </p>

這是有效的,除了我一次只能輸入一個字符 - 有趣。

最終編輯:我找到了一個可接受的替代方案,以防其他人遇到此問題。 我沒有能力直接綁定到一個對象沒有一些問題,但我能夠綁定到像下面的答案中的文檔狀態的數組。

以下小提琴完成了我需要做的事情,而只是稍微冗長一點。

http://jsfiddle.net/8ENnx/9/

function ctrl($scope) {
    $scope.objects =
                [
                [
                    {Name: 'Name:', Value: 'Joe'},
                    {Name: 'Identification', Value: '1'},
                    {Name: 'Password', Value: 'secret'}
                ],
                    [
                    {Name: 'Name:', Value: 'Jane'},
                    {Name: 'Identification', Value: '2'},
                    {Name: 'Weather', Value: 'Sunny'}
                ]
                ];

//    $scope.setSelected = ?????;

}

<div ng-app>
    <div ng-controller="ctrl">
        Objects
        <ul>
              <br/>
                Listing of properties:
                <br/>

            <li ng-repeat="obj in objects" class="swatch">                               
                {{obj}}
                <p ng-repeat="prop in obj">
                    {{prop.Name}}: <input ng-model="prop.Value" /></p>


            </li>
        </ul>

    </div>
</div>

這允許我定義一組任意參數,但仍然使用angular綁定沒有問題。

沒問題:

<li ng-repeat='(key, value) in obj'>
    {{key}} : {{value}}
</li>

它也在文檔中: http//docs.angularjs.org/api/ng.directivengRepeat

暫無
暫無

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

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