私は、Angular JS 1.5.6コンポーネントを使用して動的にフォームを構築しています。階層構造は次のとおりです。index.htmlは、入力とボタンのような単一のコンポーネントを呼び出すコンポーネントmy-formを呼び出すcomponent my-viewを呼び出します。コンポーネント内のAngular JSデータバインディングが機能しない
入力コンポーネントの変更がmy-viewコンポーネントに考慮されていないため、データバインディングが機能しないという問題があります。
私は奇妙な動作をしていますが、入力値を更新するたびに、コンポーネントの機能を表示するための呼び出しが行われます。
私はplunkeredを持っています。送信ボタンはconsole.logを起動します(実際に動作するには、firebugを開く必要があります)。ここで
はmyView.html ここ<div class="container">
<h2>With component myform</h2>
<my-form form-elements="
[{type:'input', label:'First name', placeholder:'Enter first name',model:$ctrl.userData.firstName, id:'firstName'},
{type:'input', label:'Last name', placeholder:'Enter last name',model:$ctrl.userData.lastName, id:'lastName'},
{type:'button', label:'Submit', click:$ctrl.click()}]"></my-form>
</div>
<div class="container">
<h2>Check data binding</h2>
<label>{{$ctrl.userData.firstName}}</label>
<label>{{$ctrl.userData.lastName}}</label>
</div>
である私のindex.htmlここ
<body ng-app="MyApp">
<my-view></my-view>
</body>
されているmyView.js
(function() {
'use strict';
angular.module('MyApp').component('myView', {
templateUrl: 'myView.html',
controller: MyViewController,
bindings: {
viewFormElements: '<'
}
});
function MyViewController() {
this.userData = {
firstName: 'François',
lastName: 'Xavier'
};
function click() {
console.log("Hello " + this.userData.firstName + " " + this.userData.lastName);
}
this.click = click;
}
})();
myView.htmlは、あなたの答えをありがとう、それは質問に答えていません。あなたが提案したことをすることは、私の建築と私の階層を破壊するでしょう。私はいくつかの異なるビューでmy-formコンポーネントを使用することを目的としているため、この階層を持っています。 – Mouss