我有这个声明:

$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/

10-13 01:06