1
私のテンプレートから、私はを使用して$uibModal
をトリガーします。
すべては私が$modal.close($value)
コールバック値が仕事を得ることができない、罰金、オープニング、クロージングなど
問題があるに動作します。関数自体は正常に機能し、モーダルは閉じ、約束成功関数が呼び出されます。問題は、常にundefined
を返します。
コンポーネントコントローラ
app.component('list', {
templateUrl: 'widgets/list.html',
controllerAs: '$widget',
controller: function($uibModal) {
// Add item through modal
this.addItem = function() {
// Init and open $uibModal
var modalInstance = $uibModal.open({
component : 'modalAddItem',
size : 'md'
});
// $uibModal promise
modalInstance.result.then(function(params) {
console.log(params)
// ---> undefined
});
}
}
}
モーダルテンプレート
<div class="modal-add-item">
<div class="modal-body" id="modal-body">
// Some template stuff here
</div>
<div class="modal-footer">
<button class="btn btn-sm btn-default" ng-click="$modal.ok()">Ok</button>
</div>
</div>
モーダル成分
app.component('modalAddItem', {
templateUrl: 'widgets/modals/add-item.html',
bindings: {
resolve: '<',
close: '&',
dismiss: '&'
},
controllerAs: '$modal',
controller: function ($scope) {
this.ok = function() {
this.close({item: 'picked item'});
}
}
});
すべて正常です。しかし、私が試してみると、close関数は常に返すundefined
すごいああ、あなたは文字通りキーとして '$の[値]を使用する必要があり、私はそれが唯一のデモの目的のためだと思いました。どうもありがとう! –
あなたは大歓迎です:)実際には角では&呼び出し元は、キーが元のキーと一致する必要がある引数としてマップを渡すことを呼び出し元が期待しています。この場合、キーを確定する角度です。どのように&バインディングの作業を見てみましょうhttps://stackoverflow.com/questions/43378614/javascript-objects-as-function-arguments-in-angular-directive-properties/43379581#43379581 – Karim
ああ、私はすでに不思議だった'&'バインディングは何をしましたか?説明ありがとう。 –