我想在 anchor 标记ng-click中使用 Angular 范围变量作为cshtml页面中的参数[该参数应与@string.Concat一起使用],如下所示。
<a href="#"
ng-click="GetName('@string.Concat("Selected name:",name)')"> {{name}} </a>
var personApp = angular.module('personApp', []);
personApp.controller('personController', ['$scope', function ($scope) {
$scope.GetName = function(name){
alert(name);
}
}]);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<html>
<body ng-app="personApp">
<h1>Scope</h1>
<div ng-controller="personController" ng-init="names=['John Doe', 'Mary Jane', 'Bob Parker']">
<ul>
<li ng-repeat="name in names">
<a href="#"
ng-click="GetName('@string.Concat("Selected name:",name)')"> {{name}} </a>
</li>
</ul>
</div>
</body>
</html>
最佳答案
@string.Concat
是 C# 代码,当 razor 尝试渲染页面时,它会在服务器上执行。那时你的 Angular 代码/变量甚至不可用! Razor 会将其执行的输出( View 中的 C# 代码)发送到浏览器,这是纯 html 标记。然后只有你的 Angular 代码才会被执行。所以你不能像这样将客户端 js 变量混合到 C# 代码中。
您能做的最好的事情就是简单地传递 name
变量,它是您的客户端 js 变量。
<li ng-repeat="name in names">
<a href="#" ng-click="GetName(name)"> {{name}} </a>
</li>
关于javascript - 如何在 MVC cshtml 页面的 @string.Concat() 中使用 Angular 范围变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39155543/