首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >离子型-对不同内容的多个页面重复使用相同的HTML模板

离子型-对不同内容的多个页面重复使用相同的HTML模板
EN

Stack Overflow用户
提问于 2015-12-17 21:13:42
回答 1查看 2.5K关注 0票数 2

我正在构建一个多页的Ionic应用程序。这些页面中有很多都有相同的HTML结构,只是内容不同。如何使用一个HTML文件并动态填充内容?这是通过每个页面的控制器完成的吗?还是有更好的方法来做这件事?

下面是一个页面的HTML代码示例:

代码语言:javascript
复制
<ion-view title="Comparison">
<div class="bar bar-subheader bar-stable">
    <h5 class="text-center">Do you have many categories?</h5>
</div>
<ion-content class="has-subheader">
    <ion-list>
        <ion-item ui-sref="bar-chart" class="text-center">Yes</ion-item>
        <ion-item ui-sref="column-chart" class="text-center">No</ion-item>
    </ion-list>
</ion-content>

因此,每个页面需要动态的部分是标题、h5和列表项。

现在,我每页都有一个单独的HTML文件。然后,我在.state中引用app.js中的这些HTML文件,如下所示。

代码语言:javascript
复制
.state('comparison-nb-categories', {
  url: '/',
  templateUrl: 'templates/comparison/nb-categories.html'
})

该页面可以通过ui-sref从另一个页面访问,如下所示。

代码语言:javascript
复制
<ion-item ui-sref="comparison-nb-categories" class="text-center">No</ion-item>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-18 11:17:32

我认为您可以对所有这样的页面使用一个模板html,但是不同的控制器,并且在这个控制器中为模型分配正确的值。

代码语言:javascript
复制
.state('state1', {
            templateUrl: "templates/page1.html",
            controller: "FirstCtrl",
        })
.state('state2', {
            templateUrl: "templates/page1.html",
            controller: "SecondCtrl",
        });

html将是

代码语言:javascript
复制
<ion-view title="{{title}}">
<div class="bar bar-subheader bar-stable">
    <h5 class="text-center">{{subheader}}</h5>
</div>
<ion-content class="has-subheader">
    <ion-list ng-repeat="item in items">
        <ion-item ui-sref="{{item.ref}}bar-chart" class="text-center">{{item.name}}</ion-item>
    </ion-list>
</ion-content>

FirstCtrl

代码语言:javascript
复制
.controller('FirstCtrl', ['$scope', function ($scope) {
    $scope.title = Title1;
    $scope.subheader = Subheader1;
    $scope.items = [{name:'Yes', ref:'bar-chart'},{name:'No', ref:'column-chart'}];

SecondCtrl

代码语言:javascript
复制
.controller('SecondCtrl', ['$scope', function ($scope) {
    $scope.title = Title2;
    $scope.subheader = Subheader2;
    $scope.items = [{name:'name1', ref:'ref1'},{name:'name2', ref:'ref2'}];

我添加了工作示例http://codepen.io/anon/pen/bEpKJE?editors=101

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34344345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档