我有一些相同类别的文章,我的路由如下:
app.config(function($routeProvider) {
$routeProvider
.when('/chapter/:title', {
templateUrl: 'article.html',
controller: 'article'
});
});
article.html:
<h1>{{title}}</h1>
<p>{{content}}</p>
<button>Editor</button>
但是现在我想从本章的每篇文章到编辑器版本来改变内容。这个编辑器版本可能如下所示:
editor_article.html:
<input type="text" value="{{title}}">
<textarea>{{content}}</textarea>
那么将文章按钮路由到editor_article.html模板并使用相同数据加载它的最佳方法是什么?
答案 0 :(得分:1)
没有&#34;最好的方式&#34;在这里,这一切都取决于你的背景。
所有最终用户是否都可以平等访问(或者换一种方式,如果允许任何可以打开开发控制台的人访问此页面)?
如果没有,您需要在加载SPA的大部分代码之前解决登录问题。
如果登录不是问题或已经处理,为什么需要单独的路线?
您是否需要在浏览器中单独缓存这些页面?
还有其他考虑因素吗?
完全合情合理的问题;从艺术的角度来看,也许你希望页面转换能够与做改变路线时的其他转换相匹配,或者你依靠routeParams来实现我们不会做的某些逻辑。我知道。
但除了上述所有内容之外,你可以简单地使用一个按钮和几个带有指令的ng-if语句。
<body >
<main ng-view></main>
</body>
<!-- template -->
<section >
<button
ng-click="article.toggleMode()">{{
article.editMode ? "View": "Edit"
}}</button>
<article-view
content="article.content"
ng-if="!article.editMode"
></article-view>
<article-edit
content="article.content"
onsave="article.save(content)"
ng-if="article.editMode"
></article-edit>
</section>
使用指令定义两个模板,在上面的示例中使用controllerAs:"article"
。
即使这可能会让它变得复杂。