2016-06-30 3 views
0

긴 제목은 죄송합니다. 이 질문은 제가 AngularJS Ng 경로 - 입력 할 때 특정 페이지보기로 전환 : 다른 URL의 텍스트

app.config(["$routeProvider", "$locationProvider", function($routeProvider, $locationProvider) { 

$routeProvider 
.when('/content1', { 
    templateUrl: 'content1.html', 
    controller: 'myCtrl' 
}) 

.when('/content2', { 
templateUrl: 'content2.html', 
controller: 'myCtrl' 
}) 

.otherwise({ 
redirectTo: '/content1' 
}); 

}]); 

는 입력에 입력 개의 뷰

있는 페이지가 here

제공된 응답에 기초한다 : 텍스트가 기능을 트리거하는 NG 변화 지시자를 사용하여 상기 제보기로 전환 searchProduct()을 입력하고 즉시 ng-model 지시어로 검색을 시작하십시오.

<div ng-controller="myCtrl" ng-app="myApp"> 
<input type="text" 
     ng-change="searchProduct()" 
     ng-model="searchFilter" 
     ng-model-options="{ updateOn: 'default blur', debounce: { 'default': 500, 'blur': 0 } }"> 
<ng-view></ng-view> 
</div> 

모든이 제대로 작동하고 searchProduct() 기능

$scope.searchProduct = function() { 
    $location.path('content2'); 
    $location.search({ 
     searchFilter: $scope.searchFilter 
    }); 
}; 

된다. 하지만 문제는 다른 URL을 가진 다른 페이지에서 동일한 기능을 구현하고자한다는 것입니다 (이것은 SEO 목적을위한 것입니다). 그러면 해당 페이지에서 검색 할 때 content2.html로 리다이렉트되며, 검색 창에 입력되었습니다.

절대 경로를 설정하여 처리하려고 시도했지만 작동하지 않는 것 같습니다. a working plunker with the code here을 볼 수 있습니다. 미리 감사드립니다!

+0

꽤 질문을 이해하지 않았나요하지만 당신이 부모 뷰에있는 검색 창을 넣어 시도, 스위칭 페이지 아이 뷰를 만들? 또한 ng-include를 사용하여 주 컨트롤러의 기능에서 일부 논리에 따라보기를 전환 할 수 있습니다. – afkplus

+0

나는 조금 비틀어 진 것을 알고있다. 요점은 내가 SEO 이유에 대한 자신의 다른 URL을 가지고 싶어 페이지 중 하나입니다 – Joe82

+0

내가 마지막 단락을 편집했습니다, 나는 그것이 내가 달성하고 싶은 명확하게 바란다 :) – Joe82

답변

1

라우팅을 위해 $ stateprovider를 사용하는 것이 좋습니다. 그것은 노선 제공자보다 낫다. $ routeProvider를 통해 net에서 더하기 점을 읽을 수 있습니다. 경로는 이제 더 이상 쓸모가 없습니다. 주 공급자에게 상태로 리디렉션 만하면 문제가 해결됩니다. $ state.go ('content2') 또는 $ state.go ('home') 중첩 된 상태도 가질 수 있습니다.

https://github.com/angular-ui/ui-router/wiki/Quick-Reference#stateprovider-1

+0

이므로 살펴 보겠습니다. 0.3.1 버전 https://github.com/angular-ui/ui-router/tree/legacy 또는 1.0 alpha https://github.com/angular-ui/ui-router (나는 일하고있다. 각도 1.5와 함께) 감사합니다! – Joe82