如何将来自角度控制器的变量放入HTML的确认消息中?

时间:2018-07-26 07:16:06

标签: javascript html angularjs

我想在确认消息中添加角度变量。经过多次尝试,任何解决方案都不适合我:

<a onclick="return confirm('Do you want to manage ' + {{item.name}} + ' with ...?')" 
   ng-href="/link={{item.ipAddress}}">{{item.name}}</a>

有人可以帮忙吗? (在确认消息中没有{{item.name}}的情况下工作正常)

3 个答案:

答案 0 :(得分:1)

如果您使用的是Angular框架,建议您使用(click)指令。

然后,您可以使用链接到模板的控制器中定义的方法。

Demo

组件

  confirm(item): void{
    confirm(`Do you want to manage ${item.name} with...?`);
  }

模板

<ul>
  <li *ngFor="let item of items" (click)="confirm(item)">{{item.name}}</li>
</ul>

答案 1 :(得分:0)

可以访问范围,而无需更改控制器代码。您只需要向控制器添加id。这是它的样子:

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
  $scope.item = {
    "name": "NAME"
  }
});
<!DOCTYPE html>
<html ng-app="myApp">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<body>
  <div ng-controller="myCtrl" id="ctrl1">

    <a onclick="confirm('Do you want to manage ' + angular.element(document.getElementById('ctrl1')).scope().item.name + ' with ...?')">
      {{item.name}}
    </a>

  </div>
</body>
</html>

答案 2 :(得分:-1)

根据我对问题的理解,我正在按照自己的意愿编写最佳解决方案,这可以帮助您解决问题。

var app = angular.module("app", []);
app.controller("MainController", function($scope, $window) {
  $scope.item = {
    "name": "Ronit Mukherjee",
    "ipAddress": "192.197.85.39"
  }

  $scope.myFunc = function(name, ipAddress) {
    if (confirm("Do you want to manage " + name + " with ...?")) {
      $window.location.href = "/link=" + ipAddress;
    }
  }
});
a {
  color: red;
  text-decoration: underline;
  cursor: pointer;
}
<!DOCTYPE html>
<html lang="en">

<head>
  <title>AngularJS</title>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
</head>

<body ng-app="app">
  <div ng-controller="MainController">
    <a ng-click="myFunc(item.name,item.ipAddress)">{{item.name}}</a>
  </div>
</body>

</html>

如果您仍然遇到任何问题,请随时发表评论并消除疑问。