我有这个声明:
$scope.showAlert = function() {
var alertPopup = $ionicPopup.alert({
title: 'Notification',
template: ''
);
$timeout(function() {
alertPopup.close(); //close the popup after 3 seconds for some reason
}, 30000);
};
那么我有这个:
if (!$scope.newDevice.name) {
$scope.showAlert.template = 'Name Required';
showAlert();
return;
}
但是我不知道在声明为空后如何更新
template
。我努力了:
$scope.showAlert.template = 'Name Required';
或
$scope.showAlert['template'] = 'Name Required';
但无法成功 最佳答案
在您的代码中,template
只是对象的属性。该对象的作用域是函数showAlert
,因此您无法访问它并从方法外部对其进行更新。您可以做的是将模板参数引入函数showAlert
,并在显示警报时使用它:
$scope.showAlert = function(alertTemplate) { // <- introduce parameter
if(alertTemplate === undefined) { // If parameter was not provided ...
alertTemplate = ''; // ... set it to empty string
}
var alertPopup = $ionicPopup.alert({
title: 'Notification',
template: alertTemplate // <- use parameter value
);
$timeout(function() {
alertPopup.close(); //close the popup after 3 seconds for some reason
}, 30000);
};
然后您可以像这样使用它:
if (!$scope.newDevice.name) {
$scope.showAlert('Name Required');
return;
}
在不需要提供自定义模板的情况下,只需省略参数,将使用空字符串:
$scope.showAlert();
关于javascript - 更新javascript对象的方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40960363/