angular中控制器之间的传值该怎么实现
2个回答
2016-10-12
展开全部
angular中控制器之间的传值该怎么实现
通过Angular的话可以通过下面四种方法 1、event 这里可以有两种方式,一种是$scope.$emit,然后通过监听$rootScope的事件获取参数;另一种是$rootScope.$broadcast,通过监听$scope的事件获取参数。 这两种方法在最新版本的Angular中已经没有性能区别了,主要就是事件发送的方向不同,可以按实际情况选择。 2、service 可以创建一个专用的事件Service,也可以按照业务逻辑切分,将数据存储在相应的Service中,因为已经有人提过了就不赘述了。 3、$rootScope 这个方法可能会比较dirty一点,胜在方便,也就是把数据存在$rootScope中,这样各个子$scope都可以调用,不过需要注意一下生命周期 4、直接使用$scope. www.hbbz08.com $$nextSibling及类似的属性 类似的还有$scope.$parent。这个方法的缺点就更多了,官方不推荐使用任何$$开头的属性,既增加了耦合,又需要处理异步的问题,而且scope的顺序也不是固定的。不推荐 另外就是通过本地存储、全局变量或者现代浏览器的postMessage来传递参数了,除非特殊情况,请避免这类方式。 最后 johnpapa/angular-styleguide · GitHub 这个代码风格可以参考一下,对代码的整体组织可以有些帮助 以上
通过Angular的话可以通过下面四种方法 1、event 这里可以有两种方式,一种是$scope.$emit,然后通过监听$rootScope的事件获取参数;另一种是$rootScope.$broadcast,通过监听$scope的事件获取参数。 这两种方法在最新版本的Angular中已经没有性能区别了,主要就是事件发送的方向不同,可以按实际情况选择。 2、service 可以创建一个专用的事件Service,也可以按照业务逻辑切分,将数据存储在相应的Service中,因为已经有人提过了就不赘述了。 3、$rootScope 这个方法可能会比较dirty一点,胜在方便,也就是把数据存在$rootScope中,这样各个子$scope都可以调用,不过需要注意一下生命周期 4、直接使用$scope. www.hbbz08.com $$nextSibling及类似的属性 类似的还有$scope.$parent。这个方法的缺点就更多了,官方不推荐使用任何$$开头的属性,既增加了耦合,又需要处理异步的问题,而且scope的顺序也不是固定的。不推荐 另外就是通过本地存储、全局变量或者现代浏览器的postMessage来传递参数了,除非特殊情况,请避免这类方式。 最后 johnpapa/angular-styleguide · GitHub 这个代码风格可以参考一下,对代码的整体组织可以有些帮助 以上
展开全部
可以直接通过url传递参数,然后通过对应的控制器的$routeParams来获取
例子:
$location.path('/detail/' + param);//先在跳转的url中插入传递的参数
$routeProvider.when('/detail/:param', {
controller : 'DetailController',
templateUrl : '/static/xxx/detail.html'
})
$routeParams.param就可以获取到传递过来的param参数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |