2015-02-08 76 views
0

想知道是否有'角度具體'的方式來嘗試和實現這一點。 我有一個頁面有一些意見。當用戶點擊一個錨點時,視圖就會變得很簡單。我很好奇的是,如果當用戶點擊時,是否可以存儲一個變量(比如跨度),然後將它傳遞給$routeProvider以更加動態地加載內容?

因此,對於錨標籤#name1,當顯示該視圖時,我可以將「name1」作爲變量傳入nameHolder以加載某些具有相同名稱的文件。

HTML

<a href="#name1"><span>name1</span></a> 

JS

var nameHolder = []; 
var sampleApp = angular.module('sampleApp', ['ngRoute']); 

sampleApp.config(['$routeProvider', 
    function($routeProvider) { 
    $routeProvider. 
     when('/' + nameHolder, { 
     templateUrl: 'templates/individkcd.html', 
     controller: 'individ', 
     nameofuser: nameHolder 
    }). 
     when('/', { 
     templateUrl: 'templates/home.html' 
    }); 
}]); 


sampleApp.controller('individ', function($scope, $route) { 

    $scope.img = $route.current.nameHolder; 


}); 

感謝任何信息。

已更新: 新線程解決方案。

angular js - passing a variable into $routeProvider

回答

2

您需要的參數添加到您的$routeProvider模板:

sampleApp.config(['$routeProvider', 
    function($routeProvider) { 
    $routeProvider. 
     when('/' + nameHolder, { 
     templateUrl: 'templates/individkcd/:nameHolder', 
     controller: 'individ' 
    }). 
     when('/', { 
     templateUrl: 'templates/home.html' 
    }); 
}]); 

然後在你的目標控制器使用$routeParams

sampleApp.controller('individ', function($scope, $routeParams) { 

    $scope.img = $routeParams.nameHolder; 


}); 

從上面鏈接的$ routeProvider文檔:

path可以包含以冒號開頭的命名組:例如:名稱。所有 字符,直到下一個斜線都以給定名字匹配,並存儲在$ routeParams 當路由匹配

+0

這給了一拍,但仍似乎不認識我通過一個變量到數組。創建了一個jsfiddle。我有一種感覺,在角度框架內實現我想要的更簡單的方法。 http://jsfiddle.net/GregWebBandit/rdko8qqs/1/ – gregdevs 2015-02-08 18:14:47

+0

你錯過了最重要的一步:將變量名稱放入templateUrl中。看到第一個代碼塊並在我的回答中引用 – CodingIntrigue 2015-02-08 18:44:13

+0

http://jsfiddle.net/GregWebBandit/rdko8qqs/5/更接近,如果我手動輸入「that」作爲變量,它的作用,現在只需要找到一種方法來通過它動態更新。我覺得我需要setTimeout啓動控制器,但我不知道,或者如果這是一種可能性。我曾嘗試將變量名稱傳遞到模板URL中,但仍然無法正常工作。 – gregdevs 2015-02-08 19:07:34