AngularJS中的内容管理字符串

时间:2015-08-27 13:21:40

标签: javascript angularjs translation

我正在构建一个大型AngularJS应用程序,其中一些UI文本需要进行内容管理。这是因为客户端在启动后需要编辑上下文帮助等项目以响应用户反馈。

我正在寻找将文本字符串插入UI的方法。到目前为止,我已经考虑了

  • 使用类似angular-translate的内容在运行时动态插入文本
  • 使用类似gulp-template之类的内容在构建步骤中将字符串静态插入模板

在我意识到之前从未尝试过这个问题,可能会有一些我无法考虑的问题。我希望有解决类似问题经验的人能够提出一些建议。

请注意,目前还没有计划将应用程序国际化。

1 个答案:

答案 0 :(得分:0)

我会将所有副本放在自己的指令中,以便所有组件都可以访问它。它本质上只是将你的内容与你的逻辑分开。

但是,我不认为这是一个理想的解决方案。我想,更多的是建议而不是答案。我认为理想情况下,您可以设置权限,以便每个指令都可以为某些用户编辑内容。他们可以将更改提交给UI副本,然后您将拥有一个自动生成copy指令的后端服务。

(function() {
  "use strict";

  angular
    .module("app", [])
    .service("copy", copy)
    .directive("appNav", ["copy", appNav])
    .controller("Ctrl", ["$scope", "copy", Ctrl]);

  function copy() {
    return {
      buttonExplanation: "this is a button..?",
      input: [
        { placeholder: "hahaah", label: "put in a number?" },
        { placeholder: "???", label: "a box" }
      ],
      indexTitle: "main title"
    }
  }

  function appNav(copy) {
    return {
      restrict: "E",
      templateUrl: "./appNav.tmpl.html",
      scope: { copy: "=" }
    }
  }

  function Ctrl($scope, copy) {
    var vm = this;
    vm.copy = copy;
    vm.title = copy.indexTitle;
  }

})();

http://plnkr.co/edit/zpSXqzPBPLoc1asL5WrE?p=preview