AngularJS Bootstrap UI,将数据传递到模态的问题.已选择卡未定义
AngularJS Bootstrap UI, issues passing data into modal. selectedCards undefined
我有一种感觉,我对$scope感到非常困惑,因此什么也没选择。很难理解从哪里调用选定的卡,如果有的话。有人介意向我解释我哪里出错了吗?
注意:我相信我有太多的文件等来创建值得一看的 plunkr,但可以在这里找到该网站的实时版本:http://marcmurray.net/test_sites/card_site/index.html
Javascript:
angular.module("cardSite", ['masonry', 'ngAnimate', 'ui.bootstrap'])
.controller('mainCtrl', function($scope, dataService, $scope, $uibModal, $log) {
$scope.cards = [];
dataService.getCards().then(function(response) {
$scope.cards = response.data;
}, function() {});
$scope.plusOne = function(card) {
card.card_rating += 1;
};
$scope.isActive = false;
$scope.changeClass = function() {
$scope.isActive = !$scope.isActive;
};
// Modal stuff here
$scope.modalUpdate = function(size, selectedCard) {
var modalInstance = $uibModal.open({
animation: $scope.animationsEnabled,
templateUrl: 'sendCard.html',
controller: function($scope, $uibModalInstance, cards) {
$scope.cards = cards;
$scope.send = function() {
$uibModalInstance.close($scope.selectedCard);
console.log($scope.selectedCard);
};
$scope.cancel = function() {
$uibModalInstance.dismiss('cancel');
};
},
size: size,
resolve: {
cards: function() {
return $scope.selectedCard;
}
}
});
modalInstance.result.then(function(selectedCard) {
$scope.selected = selectedCard;
}, function() {
$log.info('Modal dismissed at: ' + new Date());
});
};
});
发送卡.html:
<div ng-controller="mainCtrl">
<div class="modal-header">
<h3 class="modal-title">Ready to send a card?</h3>
</div>
<div class="modal-body">
Card selected: <b>{{card.card_title}}</b>
</div>
<div class="modal-footer">
<button class="btn btn-primary" type="button" ng-click="send()">Send</button>
<button class="btn btn-warning" type="button" ng-click="cancel()">Cancel</button>
</div>
用于调用模态的 HTML:
<button ng-click="modalUpdate(lg, card)" class="btn btn-stretch">Send</button>
尝试删除:
ng-controller="mainCtrl"
在您的发送卡.html文件中
您实际上没有在主控制器的作用域上设置selectedCard
;您只需将单击的任何卡作为selectedCard
传递。因此,您所要做的就是解析用户单击的卡:
resolve: {
card: function() {
return selectedCard;
}
}
。并将card
传递给模态控制器函数。然后,假设您的selectedCard
具有您在模板中显示的属性(card_title
),所有内容都应按预期呈现。
编辑:以上将为您工作,但也刚刚注意到您的模态控制器中有复数$scope.cards
,模板中有单数card
。您可以考虑将所有内容更改为单数,因为它与您的数据对象匹配。也很难判断您的sendCard.html
是否在单独的文件中(或者是一个 ng 模板脚本),但正如@eliagentili所说,您应该从中删除 ng-controller 属性。
最后,您需要修复send
函数:
$scope.send = function() {
$uibModalInstance.close($scope.card);
console.log($scope.card);
};
无需使用
$scope.selectedCard
你可以只使用selectedCard,因为它无论如何都不会绑定到$scope:
resolve: {
cards: function() {
return selectedCard;
}
}
相关文章:
- 在将缩略图链接到模态时遇到问题
- 从谷歌地图自定义控件打开离子模态时遇到问题
- Jquery 关闭模态问题
- 模态对话框与指令在角度,范围问题
- 华丽的弹出模态问题“获取内联”
- 模态中模态的关闭问题 - 引导
- AngularJS Bootstrap UI,将数据传递到模态的问题.已选择卡未定义
- 模态弹出问题
- 使用模态时出现问题
- 引导模态元素的高度问题
- 铬CEF显示模态对话问题
- 这个模态有什么问题.
- Angular UI 模态的范围问题
- 在控制器中调用ng模态时出现问题
- jQuery图像调整大小以适应模态的问题
- 关闭模态问题
- 在第一个模态中打开另一个模态时,启动模态问题
- 使用Angular引导模态多重问题
- JQuery / JavaScript线程问题-模态对话框
- Bootstrap:使用模态显示动态数据时出现问题