2016-03-08 106 views
0

我是新來的JavaScript,所以我不知道如何來創建對象一旦有了動態值,所以下面的代碼,我從dataItemfullNameworkerKey現在我要創建的對象selectedOwnersfullNameworkerKey值。一旦我們有了值,我該如何創建對象?

我該如何實現該任務?

ctrl.js

var selectedOwners = {}; 
    $scope.addProcessOwner = function(dataItem){ 
    var fullName = dataItem.fullName; 
    var workerKey = dataItem.workerKey; 
    console.log('WORKER KEY', workerKey); 
    } 
+0

可能幫助你http://stackoverflow.com/questions/32470928/angular-formly-adding-form-fields-dynamically-on-user-click/35603088#35603088 –

回答

0

編輯,按照註釋:

var list = []; 
$scope.addProcessOwner = function(dataItem){ 
     var selectedOwners = {"fullname":dataItem.fullName,"workerKey":dataItem.workerKey}; 
    list.push(selectedOwners); 
    } 

// use list to populate output 
+0

對於它的價值,你不必引用對象鍵。例如:'{fullName:dataItem.fullName,workerKey:dataItem.workerKey}'。 –

+0

而'Object.assign'會從'dataItem'拷貝* everything *,而不僅僅是選中的屬性。 –

+0

感謝您的答案是好方法後來我必須將workeyKey分配給表單字段'$ scope.processDTO.processOwnerWorkerKey'和fullName以'$ scope.processDTO.prcsOwner'它將會有多個選擇的所有者 – hussain

1

您使用對象初始化

selectedOwners = { 
    fullName: dataItem.fullName, 
    workerKey: dataItem.workerKey 
}; 

對象初始化是{...}位。其中的兩件東西都是屬性初始值設定程序:之前的部分是名稱,後面的部分是值,可以是任何表達式的結果。

在你的代碼中,你會已經創建了對象(var selectedItem = {};)。上面的代碼將替換爲那個對象。如果你只是想添加到它,你只需要使用分配:

selectedItem.fullName = dataItem.fullName; 
selectedItem.workerKey = dataItem.workerKey; 

使用哪種取決於是否重要,你不能創建一個新的對象。

0

您已經創建了該對象,因此您只需將值添加到該對象中即可。

var selectedOwners = {}; 
    $scope.addProcessOwner = function(dataItem){ 
     selectedOwners.fullName = dataItem.fullName; 
     selectedOwners.workerKey = dataItem.workerKey; 
     //This will print out the newly populated object 
     console.log(selectedOwners); 
    } 
+1

該代碼不會*添加*值到OP創建的對象。它創建一個* new *對象。 –

+0

編輯它以考慮您所陳述的內容。意識到你是正確的,它會重新創建對象,而不是實際將值添加到已創建的對象 – Joffutt4

相關問題