详解AngularJs路由之Ui-router-resolve(预加载)
ng-route模块中的when()和ui-route的state()都提供了resolve属性。resolve的出现解决了这个问题。resolve属性里的值会在路由成功前被预先设定好,然后注入到控制器中。通俗地将,就是等数据都“就位”后,才进行路由。这样的好处就是页面仅会被渲染一遍。我在state方法里面设置了resolve属性,里面的值是一个名为user的对象,它存有几个值。这种把resolve属性的值注入到控制器的方式有一个非常强大的地方就是,可以运用他来重用控制器,而我们需要做的仅仅只是改变user对象里面的值。重点对比最后的两个state(),可以发现第一个没有重新设置resolve属性,而第二个重新设置了resolve()属性。他们虽然共用了同一个控制器myController ,但是他们的值却不相同。这样,控制器的可维护性就会得到提高。
用户评论