2017-06-02 108 views
0

Angular 1.5從角度組件獲取數據

我創建的組件實際上只是形成幾個字段。每個字段都通過ng-model看模型

在主頁面上,用戶可以動態地添加我的組件的多個示例。 有沒有辦法通過按下一個按鈕從頁面上的所有組件模型獲取數據?

我試着給應該返回組件模型數據的組件添加回調函數。但它只有在頁面上有一個組件時才起作用。當用戶添加幾個沒有返回到父控制器。

感謝您的回覆。

回答

0

您可以在button傳遞parameterform標籤使用ng-submit,然後通過param參數在您的按鈕功能控制器。

像這樣

<form> 
<input type="text" ng-model="param.user"> 
<button ng-click="click(param)">click</button> 
</form> 

,或者你可以通過做在你的控制器NG-提交

<form ng-submit="click(param)"> 
    <input type="text" ng-model="param.user"> 
    <button>click</button> 
</form> 

: -

$scope.click = function(param) { 
    console.log(param) // will return the input value 
} 

至少這是我的理解你的題。儘管您應該提供迄今爲止嘗試過的代碼,以便人們可以看到出了什麼問題。

0

下面是從其他論壇上回答 https://plnkr.co/edit/0PPwLq2SjKwVJWYpldgU?p=preview

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

app.controller('MainCtrl', function($scope) { 
    this.children = []; 

    this.addChild = instance => { 
    console.log(instance); 
    this.children.push(instance); 
    } 

    this.getChildValue = function() { 
    console.log(this.children); 
    } 

}); 


app.component('myComponent', { 
    bindings: { 
    addChild: '<' 
    }, 
    controller: function MyComponentCtrl() { 

    this.name = ''; 
    this.surname = ''; 

    this.addChild(this); 

    }, 
    template: ` 
    <input type='text' ng-model='$ctrl.name' placeholder='Enter name' /> 
    <input type='text' ng-model='$ctrl.surname' placeholder='Enter surname' /> 
    ` 
}); 

離開這裏萬一有人有同樣的問題 很抱歉,如果我的描述wasn`t很清楚