【发布时间】:2014-10-06 02:00:29
【问题描述】:
假设我想将一个字符串列表传递给我的模板并通过迭代它来创建一个 ul。 而且我不想使用 ng-init。
动作:
public static Result login(){
List<String>Names = Arrays.asList("Tom","Dick","Harry");
return ok(login.render(Names));
}
login.scala.html:
@(names: List[String])
<!DOCTYPE html>
<html ng-app="app">
<body>
<div ng-controller="appCtrl">
<ul>
<li ng-repeat="name in names">{{name}}</li>
</ul>
</div>
</body>
<script>
app = angular.module("app", []);
app.controller('appCtrl', function($scope){
$scope.names = @Html(names);
//This does not work
// Error : type mismatch; found : java.util.List[String] required: String
});
</script>
</html>
【问题讨论】:
-
这没有任何意义。即使
@Html将该列表转换为 ul 列表,您也会收到语法错误。也许您想将其转换为 js 列表?请更明确您想要实现的目标 -
您可能不知道,但
@Html只是在输出上写入给定值而不自动将其格式化为 HTML(因为此函数特别期望通过手动格式化为HTML)。所以它在任何情况下都不会做这种会添加<ul>标签的神奇转换。 -
@Salem,applicius :请原谅我在这里没有明确表达。我正在尝试更新 $scope.names 这隐含地意味着我需要它作为一个 JS 数组(或对象,这也可以)。 Angular 将使用数组 'names' 来创建
- 标签。
标签: java javascript angularjs scala playframework-2.0