2017-02-14 55 views
1

我有一個控制器中的數據字典,我使用ng-repeat來顯示它。 key是標題,並且value被放置爲inputvalue字段。我希望用戶能夠編輯這些值,然後提交表單。什麼是我能處理所有輸入的最佳方式?我試過ng-model,但我無法直接更改字典的值,所以我傾向於製作另一個字典來存儲新數據。這似乎不是很有效,但我想知道是否有更好的方法。angularJS在輸入中放置字典的好方法是什麼

編輯:我有這個接口,並添加一些值。

export interface Iint { 
    [title: string] : string; 
} 

這是在構造

this.hashMap : Iint = {}; 
this.hashMap["Next Title"] = "data"; 
this.hashMap["Next Value"] = "more data; 

html我希望每個values(數據,更多的數據)出現在它自己的文本輸入框,用戶可以編輯和更改值在字典中。在用戶保存和更新數據之前,我需要驗證和其他事情,所以我不確定是否應該製作重複數組。

+0

你的意思是一本字典?你能提供一個例子嗎? – Korte

+0

編輯更多的細節 – mysticalstick

回答

0

檢查這個例子。在編輯答案之前,我在Angular v1中實現了它。

https://plnkr.co/edit/9Y33BDQTngPZx2Vpx5Zz?p=preview

的script.js

var app = angular.module('myApp',[]); 
app.controller('MyCtrl', ['$scope', function($scope) { 

    $scope.dict = { 
    "Title1" : "Hello World !", 
    "Title2" : "Beautiful day", 
    "Title3" : "How about that!?" 
    }; 

    $scope.submitForm = function() { 
    console.log($scope.dict); 
    alert(JSON.stringify($scope.dict)); 
    }; 
}]); 

的index.html:

<html> 
    <head> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular.min.js"></script> 
    <script src="script.js"></script> 
    </head> 
    <body ng-app="myApp"> 
    <h1>Dictionary Inputs</h1> 
    <div ng-controller="MyCtrl"> 
     <form name="myForm" ng-submit="submitForm()"> 
     <ul> 
      <li ng-repeat="(key,val) in dict"> 
     {{key}} : <input type="text" ng-model="$parent.dict[key]"> 
      </li> 
     </ul> 
     <button type="submit"> Submit</button> 
     </form> 
     <br/> 
     <div> 
     $scope.dict : {{dict}} 
     </div> 
    </div> 
    </body> 
</html> 

在角V2實現它可能是類似的路線。

相關問題