大佬教程收集整理的这篇文章主要介绍了angularjs – 如何删除控制器之间的重复共享功能,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
因此每个控制器都应该有getCityName和getCountryName来将其转换为正确的lang.
我尝试使用Angular服务来减少重复.
如您所见,我仍然需要分别在两个控制器中定义这些功能.
谢谢
Departure.html
<div ng-repeat="departure in departures_lst"> <div class="panel-title"> <h5>{{getCountryName(departure.country)}}</h5> </div> <li ng-repeat="city in departure.cities"> <a ng-click="get_desTinations(city)"> {{getCityName(city)}} </a> </li> </div>
Arrival.html
<div ng-repeat="arrive in arrives_lst"> <div class="panel-title"> <h5>{{getCountryName(arrive.country)}}</h5> </div> <li ng-repeat="city in arrive.cities"> <a ng-click="get_desTinations(city)"> {{getCityName(city)}} </a> </li> </div>
角度js
App.service('I18nservice',function () { this.getCountryName = function (country_Name) { return I18n.t("country." + country_Name) + country_name } this.getCityName = function (city_Name) { return I18n.t("city." + city_Name) + city_name } }); App.controller("departures_ctrl",function($scope,I18nservice,$LOCATIOn,$http) { $scope.getCountryName = function(country_Name){ return I18nservice.getCountryName(country_Name); } $scope.getCityName = function(city_Name){ return I18nservice.getCityName(city_Name); } }); App.controller("arrivals_ctrl",$route,$routeParams,$http,$window,$LOCATIOn) { $scope.getCountryName = function(country_Name){ return I18nservice.getCountryName(country_Name); } $scope.getCityName = function(city_Name){ return I18nservice.getCityName(city_Name); } });
你可以写这样的东西:
app.controller('FooCtrl',TranslationservicE){ $scope.getName = function(name,flag){ Translationservice.getName(name,flag); } }); app.controller('BarCtrl',flag); } }); app.factory('Translationservice',function(){ return { getName: function(name,flag){ if(flag == 'city'){ //... } else{ //... } } } })
在HTML视图中,您可以使用:
<div ng-app="myApp" ng-controller="FooCtrl"> <p>{{getName(obj.city,'city')}}</p> </div>
如果你想避免在两个控制器中声明两次getName函数,你可以将函数分配给$rootScope但是IMO它不是一个理想的解决方案,因为它可以使代码的可读性降低.
以上是大佬教程为你收集整理的angularjs – 如何删除控制器之间的重复共享功能全部内容,希望文章能够帮你解决angularjs – 如何删除控制器之间的重复共享功能所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。