GVKun编程网logo

AngularJS ng单击以转到另一页面(使用Ionic框架)(angularjs跳转页面)

13

如果您想了解AngularJSng单击以转到另一页面和使用Ionic框架的知识,那么本篇文章将是您的不二之选。我们将深入剖析AngularJSng单击以转到另一页面的各个方面,并为您解答使用Ionic

如果您想了解AngularJS ng单击以转到另一页面使用Ionic框架的知识,那么本篇文章将是您的不二之选。我们将深入剖析AngularJS ng单击以转到另一页面的各个方面,并为您解答使用Ionic框架的疑在这篇文章中,我们将为您介绍AngularJS ng单击以转到另一页面的相关知识,同时也会详细的解释使用Ionic框架的运用方法,并给出实际的案例分析,希望能帮助到您!

本文目录一览:

AngularJS ng单击以转到另一页面(使用Ionic框架)(angularjs跳转页面)

AngularJS ng单击以转到另一页面(使用Ionic框架)(angularjs跳转页面)

理想情况下,当我单击按钮(位于顶部离子导航栏上)时,它应该将我带到另一页。但是它不起作用。单击后,导航栏按钮全部消失。

当我使用伪代码时,它可以工作;警报出现。但是,当我将其交换为实际代码时,它将无法正常工作。

我感觉控制器代码以及URL或视图的引用方式有问题。但是使用href和ui-sref进行测试也无法产生任何结果。Google Devt
Tools(JS控制台)和Batarang也没有显示任何内容。

有人可以给我指路吗?

虚拟HTML代码

<buttonng-click="create()"></button>

js文件中的虚拟控制器代码

$scope.create = function() {  alert("working");};

实际的html代码(我尝试了全部4个版本)

<buttonng-click="create(''tab.newpost'')"></button><buttonui-sref="tab.newpost"></button><buttonhref="/tab/newpost"></button><buttonng-click="location.path(''/tab/newpost'')"></button>

控制器文件(“发布”和“验证”依赖项正常工作)。 当我尝试将URL放入.go()和function()时,应用程序失败。

app.controller(''NavCtrl'', function ($scope, $location, $state, Post, Auth) {    $scope.post = {url: ''http://'', title: ''''};    $scope.create = function() {      /* $location.path(''/tab/newpost''); */   /* this variant doesnt work */      $state.go("/tab/newpost");     };  });

状态js文件的摘录

.state(''tab.newpost'', {      url: ''/newpost'',      views: {        ''tab-newpost'':{          templateUrl: ''templates/tab-newpost.html'',          controller: ''NewCtrl''        }      }    });$urlRouterProvider.otherwise(''/auth/login'');

答案1

小编典典

基于评论,并且由于@Thinkerer OP- 原始海报) 为此案创建了一个小插曲,我决定在其他答案后附加更多详细信息。

  • 这是@Thinkerer创建的一个矮人
  • 这是其更新的工作版本

第一个重要变化:

// instead of this$urlRouterProvider.otherwise(''/tab/post'');// we have to use this$urlRouterProvider.otherwise(''/tab/posts'');

因为州的定义是:

.state(''tab'', {  url: "/tab",  abstract: true,  templateUrl: ''tabs.html''}).state(''tab.posts'', {  url: ''/posts'',  views: {    ''tab-posts'': {      templateUrl: ''tab-posts.html'',      controller: ''PostsCtrl''    }  }})

我们需要它们的串联url ''/tab''+ ''/posts''。这就是我们要用作 其他 网址的网址 __

该应用程序的其余部分确实接近我们需要的结果…
例如,我们仍然不得不将内容放入相同的视图targetgood中,只是对这些内容进行了更改:

.state(''tab.newpost'', {  url: ''/newpost'',  views: {    // ''tab-newpost'': {    ''tab-posts'': {      templateUrl: ''tab-newpost.html'',      controller: ''NavCtrl''    }  }

因为.state(''tab.newpost''替换.state(''tab.posts''我们必须将其放置在相同的锚点中:

<ion-nav-view name="tab-posts"></ion-nav-view>

最后对控制器进行一些调整:

$scope.create = function() {    $state.go(''tab.newpost'');};$scope.close = function() {      $state.go(''tab.posts''); };

正如我已经在我前面的答案和注释说 …的 $state.go() 是如何使用的唯一正确途径ionicui-router

检查这里 所有内容 最后的注意事项-
我只是在tab.posts… 之间进行导航tab.newpost,其余部分类似

angular.js和ionic框架搭建一个webApp

angular.js和ionic框架搭建一个webApp

angular.js和ionic框架搭建一个webApp

注:本文适合对angular.js有基础的同学
这是本系列文章的开篇,本系列文章均是转载,目的是方便自己查阅,并且以后方便改动
@H_301_11@ AngularJS简介:AngularJS是一个为动态WEB应用设计的结构框架,提供给大家一种新的开发应用方式,这种方式可以让你扩展HTML的语法,以弥补在构建动态WEB应用时静态文本的不足,从而在web应用程序中使用HTML声明动态内容。


@H_301_11@ AngularJS有五个主要核心特性,如下介绍:

双向数据绑定—— 实现了把model与view完全绑定在一起,model变化,view也变化,反之亦然。

模板—— 在AngularJS中,模板相当于HTML文件被浏览器解析到DOM中,AngularJS遍历这些DOM,也就是说AuguarJS把模板当做DOM来操作,去生成一些指令来完成对view的数据绑定。

MVVM—— 吸收了传统的MVC设计模式针但又并不执行传统意义上的MVC,更接近于MVVM(Moodel-View-viewmodel)。

依赖注入—— AngularJS拥有内建的依赖注入子系统,可以帮助开发人员更容易的开发,理解和测试应用。

指令—— 可以用来创建自定义的标签,也可以用来装饰元素或者操作DOM属性


@H_301_11@ ionic简介:ionic是一个强大的_混合式/hybrid_HTML5移动开发框架,特点是使用标准的HTML、 CSS和JavaScript,开发跨平台(目前支持:Android、iOS,计划支持:Windows Phone、Firefox OS) 的原生App应用。


@H_301_11@


ionic简介
@H_301_11@ ionic主要包括三个部分:

CSS框架- 提供原生_App质感的CSS样式模拟_。ionic这部分的实现使用了ionicons图标样式库。

JavaScript框架- ionic基于AngularJS基础框架开发,遵循AngularJS的框架约束;主要提供了适应移动端UI的 AngularJS的扩展,主要包括指令和服务。此外,ionic使用AngularUI Router来实现前端路由。

命令行/CLI- 命令行工具集用来简化应用的开发、构造和仿真运行。ionic命令行工具使用了 Cordova,依赖于平台SDK(Android & iOS)实现将移动web项目打包成原生app。

由于ionic使用了HTML5和CSS3的一些新规范,所以要求iOS7+/Android4.1+。 在低于这些版本的手机上使用ionic开发的应用,有时会发生莫名其妙的问题。


安装ionic/Install Ionic

@H_301_11@ 首先您需要安装Node.js. 其次,安装最新版本的cordova 和 ioniccommand-line tools. 通过参考Android和iOS官方文档来安装.

npm install -g cordova ionic

通过Ionic创建一个项目

@H_301_11@ 使用Ionic官方提供的现成的应用程序模板,或一个空白的项目创建一个Ionic应用。

ionic start myApp blank 创建一个空白的app项目 (下图1)

ionic start myApp tabs 创建一个带有tabs项目(下图2)

ionic start myApp sidemenu 创建一个带有滑动的项目(下图3)

@H_301_11@


上述图片
@H_301_11@ 我现在创建一个空白的项目 ionic start myApp blank

@H_301_11@


cmd窗口
@H_301_11@ 然后我们看到有myApp项目生成。如下目录

@H_301_11@


然后打开index就能运行项目了
@H_301_11@ 然后我们用浏览器打开index就可以看的如下图的东西了。

@H_301_11@


index.html
@H_301_11@ 接着下一步,我们用编辑器打开index.html。观察里面所引入的文件,我的习惯把跟项目无关的文件删除了。你可以不删除,我也改动了部分文件的位置,之所以叫你观察里面引入的文件,就是怕你删错了,项目启动不了。改动完结构如下:


项目结构
@H_301_11@ 其中配置文件,controller,driectives,filter,services,文件都是我新建的。

下面先从app.js说起

@H_301_11@


app.js
@H_301_11@ 这个myApp需要在根节点启动。一个项目建议一个这样的模块。

@H_301_11@


@H_301_11@ 上述路由config配置是基于ui-router,因为在index.html已经引入了ionic.bundle.min.js文件,这个文件把angular.js和ui-router及ionic所需的组件都帮我们打包好了,所以引用很方便。
打开这个ionic.bundle.min.js看一下就知道合成了什么东西了,如图:

@H_301_11@


@H_301_11@ 把6个文件包合成一个了,你可以分别百度看看各是什么包,留给你们思考。

$stateProvider.state(name,{
url: '',
templateUrl:'',// 这个是模板位置
controller: '' // 这个是对应模板的controller名称!记住是名称不是位置
});

@H_301_11@ 上述是ui-router的基本用法,详情用法可以去查看官方文档。

app.js配置完,下面就配置controller

@H_301_11@ 刚才我们配置完了app.js,我们要新建一个名字叫homeCtrl的controller。命名我建议XXXCtrl或者XXXController,当然以你们项目为标准。

@H_301_11@


homeCtrl
@H_301_11@ 采用闭包的模式创建controller,为了保险防止不必要变量污染的错误。其中

angular.module('myApp') 就是载入刚才创建的模块,然后设置一个叫做homeCtrl的controller,

格式一般都是angular.module('myApp').controller(name,[params,function(params) {}])。

@H_301_11@ 创建完成homeCtrl之后呢,在index.html中引用,如下图:

@H_301_11@


记得在app.js下面引用
@H_301_11@ 好了,我们根据刚才配置的路由创建完了controller,现在就差模板了。

创建home模板

@H_301_11@ 在刚才创建文档template文件夹当中,新建一个home.html。也就是刚才配置app.js中的路由中写的路径和名字,忘记的回头看看app.js是怎样写的。在刚才创建的home.html,写上以上内容

@H_301_11@ 如下图:


home.html
@H_301_11@ 在项目中我们这样写着,凡是带有<ion-xxx></ion-xxx>都是ionic框架自带的。这是一个指令,如果你还不明白指令什么意思,没关系。你就当做一个带有某些功能的自定义标签。
创建home.html模板和homeCtrl.js之后。我们试着启动,在浏览器中打开index.html这个文件,这个文件作为一个项目的入口。ion-view就是这个页面的顶层,所有内容都在这个view中,ion-header就是那个头部,ion-content就是内容。这些都不是必须的,但是我建议这样写,因为ionic有些组件是需要在这些标签里面才能起作用的。然后看到如下图:

@H_301_11@


index.html
@H_301_11@ 当看到页面和控制台都出现“hello world”文字,证明我们成功了,项目启动成功。

创建app.js和html模板及homeCtrl模板总结

@H_301_11@ 其实我们写项目的思路:举刚才那个例子

1、创建一个app.js,首先能启动项目,然后配置路由。其中路由需要模板controller那么问题来了,接着看2、3、步。

2、然后创建模板,XXX.html模板。

3、最后创建XXXCtrl.js的controller。

编写控制器与模板

@H_301_11@ 下面来点有意思的吧,先来个轮播图。那就用ionic框架自带的吧,具体查文档即可,如下图:

@H_301_11@


添加如下html
@H_301_11@ 刷新浏览器如下图:

@H_301_11@


多了banner
@H_301_11@ 好了,这证明我们成功了,可以滑动,可以自带切换。其实还有很多功能,可以查阅文档尝试。一般由于手机网站banner都是从后台读取数据的,那么我们来改写。在controller获取数据,然后赋值给$scope变量,由于页面和对应controller的$scope有关联,所以对应页面上的属性也会变好,是不是还是不太明白,那么来看代码吧。homeCtrl如下:

@H_301_11@


homeCtrl
@H_301_11@


home.html
@H_301_11@ 我们把代码改成

1、ng-repeat="item in views.slideData track by $index",意思就是从$scope.views.slideData数组遍历,item是数组里面的某一项,track by $index其实是性能优化,后续会讲,你也可以不写直接ng-repeat="item in views.slideData"

2、之前由<img src="路径"> 这种变成 <img ng-src="{{item}}",其中ng-src是一个angular自带的指令,item是数组遍历出来的路径

从服务器获取数据

@H_301_11@ 啰嗦的话不说了,直接上案例。如图:

@H_301_11@


获取数据,输出到列表
@H_301_11@

@H_301_11@ 既然要数据,那么先建一个服务,使用 angular.module 的 factory API创建服务,是最常见也是最灵活的方式。其实还有几种

factory()

service()

constant()

value()

provider()

@H_301_11@ ,具体详情查文档,不过多数项目用这种(factory)创建方法就满足需求了。举个简单例子

@H_301_11@ factory() 方法是创建和配置服务的最快捷方式。 factory() 函数可以接受两个参数。

name (字符串)

@H_301_11@ 需要注册的服务名。

getFn (函数)

@H_301_11@ 这个函数会在AngularJS创建服务实例时被调用。

angular.module('myApp')

.factory('myService',function() {

return {

'username': 'auser'

};

});

@H_301_11@ 要上我们真实的示例代码了哦,如下图:

@H_301_11@


这个文件是当初新建的servers。
@H_301_11@

@H_301_11@ 有同学觉得奇怪了,怎么会是app.factory呢?其实app就是angular.module('myApp',[]),我在app.js文件里面把angular.module('myApp',[])赋值给全局变量app了。见下图:

@H_301_11@


app.js
@H_301_11@ 我们建好了servers。在index.html里面引入哦:

@H_301_11@


index.html
@H_301_11@ 好!创建好servers.js,还有在index中引入。那么怎么在controller中调用呢?那我们来看看改写后的controller,如图:

@H_301_11@


homeCtrl
@H_301_11@


控制台
@H_301_11@ 我们创建services到调用services里面的ajax请求都成功了,如何在homeCtrl中获取数据呢?

@H_301_11@ 那就先从services改写开始,如下图:

@H_301_11@


services
@H_301_11@ homeCtrl怎么获取数据?看下图:

@H_301_11@


homeCtrl
@H_301_11@ 调用myFactory.getList()方法为什么后面还跟着一个then的。其实我们使用内置的 $http 服务直接同外部进行通信。 $http 服务只是简单的封装了浏览器原生的 XMLHttpRequest 对象。$http 服务是只能接受一个参数的函数,这个参数是一个对象,包含了用来生成HTTP请求的配置内容。这个函数返回一个promise对象, 由于 $http 方法返回一个promise对象,我们可以在响应返回时用 then 方法来处理回调。如果使用 then 方法,会得到一个特殊的参数,它代表了相应对象的成功或失败信息,还可以接受两个可选的函数作为参数。或者可以使用 success 和 error 回调代替,至于promise对象是什么,这里就不一一叙述了,写起来篇幅比较大,还是留给你们查文档吧。

promise.then(function(resp){

// resp是一个响应对象

},function(resp) {

// 带有错误信息的resp

});

// 或者使用success/error方法

promise.success(function(data,status,headers,config){

// 处理成功的响应

});

// 错误处理

promise.error(function(data,config){

// 处理非成功的响应

});

@H_301_11@ 然后看看控制台输出什么,还是看图:


控制台显示调用接口成功
@H_301_11@ OK!大功告成,我们可以把这些数据绑定在$scope上,然后渲染到页面。还是看图:

@H_301_11@


homeCtrl
@H_301_11@

@H_301_11@


home.html
@H_301_11@


列表变化
@H_301_11@ 总结:

1、创建services并写好里面的服务,然后在index.html引入services。

2、homeCtrl中注入依赖services里面的factory服务,调用里面的方法。

3、在homeCtrl调用factory服务方法,然后获取数据。再把数据赋值给$scope。所以模板也能获取$scope里面的数据,那么页面数据就更新了。

编写过滤器

@H_301_11@ 上面已经教会大家如何建立一个services服务获取数据,但是有时候我们获取数据回来的数据做进一步修改显示在页面,下面假如我们有一个需求,我想把姓名全部变成大写。

1、首先创建一个filter。

2、在index.html引入filter。(这个不说了,请看上面services怎么引入的)

@H_301_11@


filter.js
@H_301_11@ 在home.html页面中,姓名这样写。

姓名:{{item.Name | toupperCaseText}}

@H_301_11@


变成大写了
@H_301_11@ 那么我现在想把城市变成小写,怎么弄?留给你们一个作业吧。

@H_301_11@ 正如前面所见,创建自定义过滤器非常容易。创建自定义过滤器需要将它放到自己的模块中。过滤器本质上是一个会把我们输入的内容当作参数传入进去的函数。上面只是一个简单的例子,其实就是把数据获取进来,数据进来了,你想怎样处理数据就怎样处理。相当于你小时候,你骗你爸爸妈妈零用钱的时候,钱到你口袋了,至于钱怎么用了,那是你自己的事。当你爸爸妈妈问你拿去干什么的时候,你告诉他了,那就相当于把数据处理完渲染在页面了。过滤器其实内置有很多很好用的,需要的时候时不时的查看文档就行了。用法就是这么简单。

@H_301_11@ 过滤器总结

1、分析需求怎样的数据在页面,查阅内置过滤器是否满足需求。

2、假如需求内置过滤器不能满足,创建filter.js,编写处理数据逻辑。

3、在index.html引入过滤器。在需要用过滤器的加上“|”,例如:{{item.Name | toupperCaseText}}


页面之间传递数据

@H_301_11@ 当我们写完home.html页面并且完成了homeCtrl,及通过services获取后台服务器的数据,展示到页面,证明我们成功了一个小项目的大部分。你可以想象,一个项目都是获取数据,展示数据(至于怎样展示,点击展示还是默认展示,这是交互性的东西),或者提交数据,提交数据本文并没有说,但是我们已经知道怎样获取了,提交还困难么。都是差不多的原理。自己翻阅文档看看$http的方法就可以解决了。我们下面继续实现一个需求,点击刚才的某一项列表,跳到详情页。

新建一个详情页detail.html,新建一个detailCtrl的控制器,并且配置详情页路由。忘记了的可以看看前面新建home的步骤。(记得在index.html引入detailCtrl哦,否则会报下面的错,看图

@H_301_11@


当我们跳转detail路由时候,由于没引入对应的detailCtrl,会报错
@H_301_11@ 下面展示路由配置及detail.html页面和detailCtrl.js

@H_301_11@


路由配置

detailCtrl
@H_301_11@


detail.html
@H_301_11@ 我们配置完路由和新建detail的页面及controller。我们实现点击列表跳转到detail页面,并带上数据。我再啰嗦一次,本文带有<ion-xxx>都是ionic框架自带的,ion-view就是这个页面的顶层,所有内容都在这个view中,ion-header就是那个头部,ion-content就是内容。这些都不是必须的,但是我建议这样写,因为ionic有些组件是需要在这些标签里面才能起作用的。

@H_301_11@ 那我们点击列表

思路就是ng-click="views.goDetail(item)"; views.goDetail就是跳转到detail页面,跳转路由使用$state.go("XXX");XXX代表路由的名称,item就是你点击某一项的数据,看图:

@H_301_11@


ng-click,home.html中

homeCtrl
@H_301_11@ 我们点击列表的时候既可以,可以看到console把item的内容打印出来。

@H_301_11@


console.log(item)
@H_301_11@ 现在需求要实现下面的详情图。

@H_301_11@


点击详情
@H_301_11@ 如何实现从A页面==》B页面,并且把A页面的数据带到B页面。下面来探讨angular页面之间的传递数据方式。下面讲5种方法,可能有更多,但是我选常用的讲。

1、可以用$rootScope顶级作用域,从A页面赋值给$rootScope的某个属性,然后B页面获取数据赋值到页面。

@H_301_11@


detailCtrl
@H_301_11@


detail.html
@H_301_11@ 结果,如大家所愿详情页能实现刚才的效果了。

2、在A页面用$state.go("xxx",{obj});配置路由参数,然后在B页面用$stateParams对象获取url的参数。

@H_301_11@


homeCtrl,item是个对象来的,也可以是字符串
@H_301_11@



detailCtrl
@H_301_11@

@H_301_11@


@H_301_11@ 使用这个方法从home页面传递过来的url

3、在services里面建立一个服务,在A页面把数据传递给这个服务,然后在B页面获取这个服务的值。为什么可以这样做?因为services服务里面的方法是共享的,当项目初始化的时候services已经实例化了一次(服务是一个单例对象,在每个应用中只会被实例化一次(被 $injector 实例化),并且是延迟加载的(需要时才会被创建)),所以不存在跳转页面就数据没了。(这个是最佳实践哦,不过也要看业务场景。这个是我最常用的)。

@H_301_11@


services.js
@H_301_11@


homeCtrl设置值
@H_301_11@


detail.html
@H_301_11@

@H_301_11@


detail.html
@H_301_11@ 页面之间的传递数据,以上是常用的3种。下面介绍没那么常用的:

@H_301_11@ 利用localStorage、sessionStorage、cookie在A页面中存值,然后在B页面中获取值,这3个都是可以存储数据。他们之间的区别你们查文档吧,哈哈哈~~~~ 留给你们思考。

@H_301_11@ 数据绑定

@H_301_11@ 数据绑定,从刚一开始从服务获取数据,然后把数据绑定到$scope上,然后在页面输入{{}}花括号输出,这种就是数据绑定了。那我们来个假设,现在有个输入框,输入框是多少,列表中的那个人的年龄是多少。

@H_301_11@ 由于这个需求,就是双向数据绑定,可以ng-model用绑定一个变量,这个变量赋值给年龄,那么年龄也跟着变了。看下图:

@H_301_11@


detailCtrl.js
@H_301_11@


detail.html
@H_301_11@


页面显示

@H_301_11@ 好啦好啦,初始化做完了。下面呢,我们在input输入框值,改变一下input框里面的值,看看有什么变化。

@H_301_11@ 改变了

@H_301_11@ 输入框里面的值改变了,上面的年龄值也改变了。证明$scope.views.age的值改变了,这些就是数据绑定了。

@H_301_11@ 数据绑定总结

@H_301_11@ 当AngularJS认为某个值可能发生变化时,它会运行自己的事件循环来检查这个值是否变“脏”。如果该值从上次事件循环运行之后发生了变化,则该值被认为是“脏”值。这也是Angular可以跟踪和响应应用变化的方式。这个事件循环会调用$digest()循环(这个你们查查文档就能知道了)。这个过程被称作脏检查(dirty checking)。脏检查是检查数据模型变化的有效手段。当有潜在的变化存在时,AngularJS会在事件循环时执行脏检查(查阅文档)来保证数据的一致性。

另附:ionic框架的帮助文档http://www.ionic.wang/js_doc-index-id-13.html

相关资源网址:
1http://www.ionic.wang/ ionic框架中文网
2http://www.requirejs.cn/ RequireJs中文网

--- end ---

angularjs ionic 做的项目,路由跳转到子页面有问题!

angularjs ionic 做的项目,路由跳转到子页面有问题!

按照例子,我在app.js中设置了俩个页面的路由:

   .state(''tab.user'', {
                url: ''/user'',
                views: {
                    ''tab-user'': {
                        templateUrl: ''templates/user/user.html'',
                        controller: ''UserCtrl''
                    }
                }
            })

            .state(''userdetail'',{
                url:''/userdetail/:uaid'',
                templateUrl:''templates/user/userdetail.html'',
                controller:''UserdetailCtrl''
            })

控制器也相应设置后,在user.html页面里的列表设置跳转:

<ling-repeat="item1 in item1s"ui-sref="#/userdetail/{{item1.gameId}}" >

但是点击后就报错:Error: Could not resolve ''#/userdetaill/11001'' from state ''tab.user''
transitionTo@file :。。。。。

假如我写成ui-sref="userdetail"就可以过去,但这样过去带不了$stateParams了,我是错在哪里了,求大神指教!

angularjs – $state.go不使用第三级嵌套状态(使用Ionic选项卡/ AngularUI)

angularjs – $state.go不使用第三级嵌套状态(使用Ionic选项卡/ AngularUI)

我正在尝试使用$state.go在Ionic(AngularJS UI路由器)应用程序中的选项卡之间切换,但我无法使其与子子状态(state.substate.subsubstate)一起使用.它实际上在移动到子状态(state.substate)时工作正常.

这就是我的意思:http://codepen.io/anon/pen/Jykmi?editors=101
按“Tab2”按钮既不起作用也不引发错误.尽管如此,用ui-sref =“tabs.tab2.home1”或href =“#/ tabs / tab2 / home1”替换ng-click =“goToState(‘tabs.tab2.home1’)”(第25行),工作得很好.这是一个例子:http://codepen.io/anon/pen/DIxhC?editors=101

即使使用ng-click =“goToState(‘tabs.tab2’)”也行,但这不是预期的目标状态.

我发现了其他类似的问题(如this和this)但我不认为他们有同样的问题.

有人知道$state.go是否应该与第三级嵌套状态一起使用?是我的代码中的问题吗?

非常感谢提前.
问候,
拉法.

解决方法

由于ui-sref =“tabs.tab2.home1”在内部使用$state.go,正如你所说的ui-sref =“tabs.tab2.home1”有效.

我的回答是肯定的:$state.go()应该与第三级嵌套状态一起使用.

我实际上在我自己的projet中使用它没有问题(但没有离子标签)

AngularJS – (使用Ionic框架) – 头标题上的数据绑定不起作用

AngularJS – (使用Ionic框架) – 头标题上的数据绑定不起作用

我正在使用一个名为“Ionic”的基于AngularJS的库( http://ionicframework.com/)。

这似乎很简单,但对我来说并不奏效。

在我看来,我有以下几点

<view title="content.title">
  <content has-header="true" padding="true">
    <p>{{ content.description }}</p>
    <p><ahref="#/tab/pets"> Back to home</a></p>
  </content>
</view>

在上述观点的控制器中,我有

angular.module('App',[]).controller('DetailCtrl',function($scope,$stateParams,MyService) {

  MyService.get($stateParams.petId).then(function(content) {
    $scope.content = content[0];
    console.log($scope.content.title); // this works!
  });
});

此视图的数据通过简单的HTTP GET服务(称为MyService)加载。

问题是当我查看此页面时,

<view title="content.title">

不显示标题。这只是一个空白。根据离子文件(http://ionicframework.com/docs/angularjs/controllers/view-state/),我认为我做正确的事情。

很奇怪,“{{content.description}}”部分作品,但“content.title”不起作用?

另外,是因为我正在动态地加载内容(通过HTTP GET)吗?

@H_301_23@
@H_301_23@
以下是Ionic如何完成此工作的一个例子。打开菜单,然后点击“关于”。当“关于”页面转换时,您将看到已解决的标题。

如Florian所说,您需要使用服务并解决以获得所需的效果。然后将返回的结果注入控制器。这有一些不利的一面。国家供应商将不会改变路线,直到承诺得到解决。这意味着用户尝试更改位置和实际发生的时间可能会有明显的滞后。

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

@H_301_23@

总结

以上是小编为你收集整理的AngularJS – (使用Ionic框架) – 头标题上的数据绑定不起作用全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

今天关于AngularJS ng单击以转到另一页面使用Ionic框架的讲解已经结束,谢谢您的阅读,如果想了解更多关于angular.js和ionic框架搭建一个webApp、angularjs ionic 做的项目,路由跳转到子页面有问题!、angularjs – $state.go不使用第三级嵌套状态(使用Ionic选项卡/ AngularUI)、AngularJS – (使用Ionic框架) – 头标题上的数据绑定不起作用的相关知识,请在本站搜索。

本文标签: