2016-08-25 2 views
0

アンカータグで角度スコープ変数を使用したいng-clickをparamとして[そのパラメータは@ string.Concatとともに使用する]で以下のようなcshtmlページ。MVC cshtmlページの@ string.Concat()にangle scope変数を使用する方法

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

答えて

1

@string.Concat C#コードで、かみそりは、ページをレンダリングしようとするときには、サーバー上で実行されます。その時あなたの角度コード/変数は利用できません! Razorは、そのHTMLコードの実行結果(ビュー内のC#コード)をブラウザに送信します。これはプレーンなHTMLマークアップです。その後、あなたの角度コードだけが実行されます。だから、クライアント側のjs varibaleとそのようなC#コードを混在させることはできません。

あなたができることは、クライアント側のjs変数であるname変数を単に渡すことです。

<li ng-repeat="name in names"> 
    <a href="#" ng-click="GetName(name)"> {{name}} </a> 
</li> 
関連する問題