Jef*_*tes 3 html asp.net-mvc razor angularjs
我在一些 Html 中嵌入了一个 Html 变量,我从数据库中检索到一个 AngularJS $scope 对象。然后我使用 ng-bind-html 指令在 MVC/razor 视图中呈现它。一个简单的例子如下:
myView.cshtml
<html>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
<p ng-bind-html="pageSizeHtml"></p>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我的Ctrl.js
var myApp = angular.module('myApp', []);
myApp.controller('myCtrl', function($scope) {
$scope.pageSizeHtml = '<div>Your page size is: @OurSystem.Configuration.PageSize</div>'
});
Run Code Online (Sandbox Code Playgroud)
当我运行它时,呈现的页面如下所示:
Your page size is: @OurSystem.Configuration.PageSize
Run Code Online (Sandbox Code Playgroud)
但我希望它解释 Razor 变量的值,如下所示:
Your default page size is: A4
Run Code Online (Sandbox Code Playgroud)
真的坚持这一点,所以任何帮助将不胜感激!
您当前的代码将不起作用,因为您试图在 .js 文件中使用 razor 语法,该文件不会被 razor 引擎转换。因此,您将获得文字字符串。
一个选项是ng-init在实际的剃刀视图中使用以将值传递给角度控制器。
在您看来:
<html>
<body>
<div ng-app="myApp" ng-controller="myCtrl" ng-init="myInit(@OurSystem.Configuration.PageSize)">
<p ng-bind-html="pageSizeHtml"></p>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在 JS 控制器中:
var myApp = angular.module('myApp', []);
myApp.controller('myCtrl', function($scope) {
$scope.myInit = function(val) {
$scope.pageSizeHtml = '<div>Your page size is: ' + val + '</div>';
}
});
Run Code Online (Sandbox Code Playgroud)
注意:在测试上述代码时遇到本地问题,但它应该非常接近您想要的。
| 归档时间: |
|
| 查看次数: |
6835 次 |
| 最近记录: |