在通过JS进行REST调用之前,尝试以角度显示弹出窗口

时间:2018-11-09 12:01:08

标签: javascript angularjs

我遇到了一个问题。

我有一个这样的角度按钮:

<button ng-click = "makeRestCall()">
</button>

这是Javascript代码的样子:

$scope.makeRestCall = function() {
    console.log('Logic to make rest call...');        
}; 

现在的问题是,当我单击按钮时,我希望它显示一个弹出窗口以供确认,而不是直接通过JS进行REST调用。如果是,则调用该函数,否则调用。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:4)

您可以使用浏览器创建一个简单的 btnCalibrate = MDCRaisedButton() btnCalibrate?.setImage(UIImage(named: "chip"), for: .normal) btnCalibrate?.backgroundColor = UIColor(netHex: Constants.color) btnCalibrate?.layer.cornerRadius = 40.0 btnCalibrate?.imageEdgeInsets=UIEdgeInsets(top: 5, left: 2, bottom: 5, right: 2) btnCalibrate?.imageView?.contentMode = .scaleAspectFit btnCalibrate?.isUserInteractionEnabled=true let tapGesture = UITapGestureRecognizer(target: self, action: #selector(recalibrateFromImageView(_:))) btnCalibrate?.addGestureRecognizer(tapGesture) btnCalibrate?.translatesAutoresizingMaskIntoConstraints=false //btnCalibrate?.addTarget(self, action: #selector(recalibrate(_:)), for: [.touchUpInside]) self.addSubview(btnCalibrate!) 框(为了使将来更加直观,您可以使用alertify插件来使弹出式UI在整个浏览器中保持一致)

imageView

Demo Here

Demo和Alertify


进一步扩展它,如果继续在每个位置重复相同数量的代码,那将是一个糟糕的解决方案。这样可以使ACID的DRY原理变得紫色。更好的是,我们只需编写一次逻辑,然后在任何地方使用它。在angular中,您可以为它创建指令。

指令

UIButton

用法

confirm

控制器

$scope.makeRestCall = function() {
  var accepted = confirm('Are you sure you want to proceed.')
  if(accepted)
  console.log('Logic to make rest call...');
};

Running demo和指令