我想在锚标记 ng-click 中使用角度范围变量作为param [param应该与@ string.Concat一起使用]在cshtml页面中如下所示。
<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>
答案 0 :(得分:1)
@string.Concat
是C#代码,当razor尝试渲染页面时,它会在服务器上执行。那时你的角度代码/变量甚至都不可用! Razor会将其执行的输出(视图中的C#代码)发送到浏览器,这是普通的HTML标记。然后只执行你的角度代码。因此,您不能将客户端js varibale与c#代码混合在一起。
您可以做的最好的事情就是简单地传递name
变量,这是您的客户端js变量。
<li ng-repeat="name in names">
<a href="#" ng-click="GetName(name)"> {{name}} </a>
</li>