1

最近我遇到了一个代码块,其中 JST 在 Angular 模板之前添加 -

例子 -

$routeProvider .when("/login", { template: JST["app/templates/login"], controller: "LoginController" })

以前,我确实喜欢这样-

$routeProvider .when("/login", { template: "app/templates/login", controller: "LoginController" })

JST角度模板中的这个是什么意思?如果有的话,这两种风格之间的区别是什么?

仅供参考 - 它是由linemanjs.

4

3 回答 3

4

它可能是代码中的哈希对象,其中包含所有键和值作为 html 文件的模板 url。

var JST = {
    "app/templates/login":"something.html"
};

$routeProvider
    .when("/login", {
        template: JST["app/templates/login"],
        controller: "LoginController"
    })
于 2014-07-16T06:29:21.547 回答
2

以下是我在 Angular 中使用 JST 模板的方法:

app.factory('$jst', ['$sce', function($sce) {
  var methods = {
    template: function(name) { return $sce.trustAsHtml( eval(JST[name])() ) }
  };
  return methods;
}]);

app.controller('SomeCtrl', ['$scope', '$http', '$jst', function($scope, $http, $jst) {
  $scope.template = $jst.template('name-of-my-template');
}]);

...这是我的 HTML:

<div ng-controller="SomeCtrl">
  <div ng-bind-html="template"></div>
</div>

这是从 AngularJS 内部使用 JST 模板的一种简单而优雅的方式。

PS 它也适用于 SailsJS。

于 2015-08-24T00:45:08.463 回答
1

您的应用程序正在使用 JST 模板,此页面描述了它们。JST 是一个将模板作为 JavaScript 函数返回的哈希值。通常这个 JST 对象(函数的散列)是在构建时创建的,并保存为一个 JavaScript 文件,该文件以某种方式被应用程序包含在内。编译后的 JST 对象的输入是模板 .html 文件的列表。

于 2015-01-30T17:16:05.393 回答