离子 - 动态添加状态

时间:2015-06-13 22:53:07

标签: json angularjs angular-ui-router ionic-framework

我正在使用 Ionic 框架开发移动应用程序。我得到一个包含模板及其控制器的JSON文件。一旦有JSON格式的数据,服务器就会推送数据。问题是动态添加状态,我已经读过它只能在配置时添加。

请告诉我是否有通过控制器执行此操作的方法,该控制器仅负责接收和设置新状态,并且还将接收JSON并从中创建新状态。

非常感谢帮助!

修改

我找到了ui-router-extras(http://christopherthielen.github.io/ui-router-extras/#/future),但我不知道如何让它适用于我的应用程序。

假设控制器使用 $ http 获取JSON,其中JSON如下所示:

{
  'name':'preview',
  'template':'<h1>Hello</h2>'
}

如何在此控制器中添加此状态?

1 个答案:

答案 0 :(得分:0)

有一些类似的Q&amp;答:

这表明,UI-Router附带了一个很棒的功能:

$urlRouterProvider.deferIntercept(defer)

  

禁用(或启用)延迟位置更改拦截。

     

如果您希望自定义同步URL的行为(例如,如果您希望延迟转换但保留当前URL),请在配置时调用此方法。然后,在运行时,在配置自己的#include <chrono> using namespace std::chrono_literals; #define DUR 1000ms struct T { static constexpr auto dur_1 = DUR; }; decltype(T::dur_1) T::dur_1; // main.cpp:12:23: error: 'constexpr' needed for in-class initialization of static data member 'const std::chrono::duration<long int, std::ratio<1l, 1000l> T::dur_1' of non-integral type [-fpermissive] // decltype(T::dur_1) T::dur_1; // ^ 事件处理程序后调用$urlRouter.listen()

有一些有效的掠夺者herehere

显示在 $locationChangeSuccess 阶段我们将停止url路由器:

.config()

稍后,在 .config(['$stateProvider', '$urlRouterProvider', function ($stateProvider, $urlRouterProvider) { // States, which we know about from beginning // could be declared "statically" $stateProvider ... // here we say STOP $urlRouterProvider.deferIntercept(); } ]) 阶段,我们将1)通过$ http配置状态2)启用网址路由

.run()

检查操作herethere