在angularjs之外访问$ state

时间:2017-01-01 03:29:25

标签: javascript angularjs angularjs-scope hybrid-mobile-app url-template

我有一个angularjs应用程序。该应用程序应该是Android和iOS的混合移动应用程序。我在项目中有一个JavaScript文件,它不是任何模块的一部分。在该JavaScript文件中,我需要通过$ state或任何加载控制器的方法来调用相应的模板URL。

对于$ scope,我发现在angularjs项目之外有很多方法可以访问它,但在$ state中找不到相同的方法。

1 个答案:

答案 0 :(得分:3)

我们可以使用java-script

window.location.href //to change location 

例如:  现在假设我在https://www.google.co.in/

现在我要导航到https://news.google.co.in/

我们可以简单地写

window.location.href ="https://news.google.co.in/"

它将导航到该页面

现在,在您的项目中,您可能已经定义了这样的路由

function routeConfig($stateProvider, $urlRouterProvider, $httpProvider) {
$stateProvider
  .state('landing.home', {
    url: '/home',
    templateUrl: "app/components/homeFolder/home.html",
    controller: 'homeController',
    controllerAs: 'homec'
  })
  .state('landing.hometwo', {
    url: '/home1',
    templateUrl: "app/components/OnHand/Templates/OnHandhome.html",
    controller: 'OnHandController',
    controllerAs: 'Onhand'
  })

  })

现在如果你在angularjs控制器中,你只需使用

 $state.go('landing.home');// to navigate to your required location 

但如果您不在angularjs模块中,则可以更改window.location以导航到所需页面

例如实现--- $ state.go(' landing.home');你可以写

window.location.href ="https:complete url"

或其他

window.location.hash ="#/home1" //the url which is defined for that state