2016-06-06 94 views
0

**角度新手提醒**角度查詢字符串

我有一個網頁,與幾個查詢字符串值調用。

我想用來自查詢字符串的值填充一對數據綁定區域。

<span class="username">{{firstName}}{{lastName}}</span> 

,我使用這個

var vars = [], hash; 
    var q = document.URL.split('?')[1]; 
    if (q != undefined) { 
    q = q.split('&'); 
    for (var i = 0; i < q.length; i++) { 
     hash = q[i].split('='); 
     vars.push(hash[1]); 
     vars[hash[0]] = hash[1]; 
    } 
    } 

    alert(vars['lastName']); 

解析查詢字符串我不知道如何真正推動值代入數據綁定字段。

+1

這裏沒有'C#'這裏有什麼 – Jonesopolis

+0

有很多Angular在線教程你有嗎? d看着一些並試圖瞭解AngularJS是如何工作的? – MethodMan

+0

是的,內容很棒......但在這個問題上,我還沒有找到我上面概述的解決方案。我在頁面底部放置了一個文本框,並使用查詢字符串中的值更新了文本框,在綁定數據字段中沒有更新 - 直到手動將值輸入到文本框中,然後更新{ {lastName}}所以我需要做的是將值放入文本框的部分,改變文本顯示。 – pithhelmet

回答

0

我不得不從幾個嘖嘖中拿出幾個部分,再加上一把錘子才能找到某個東西。

這就是說,代碼的放置是特別重要的。

大部分代碼都必須在頁面的開頭和頭部中完成。

對$位置的建議是一個很好的建議,但每次我將它放入代碼塊時似乎都失敗了。

這裏是主代碼塊...

<script> 

var dashboardApp = angular.module('dashboardApp', []); 
dashboardApp.controller('userNameCtrl', function ($scope) { 

    var vars = [], hash; 
    var q = document.URL.split('?')[1]; 
    if (q != undefined) { 
    q = q.split('&'); 
    for (var i = 0; i < q.length; i++) { 
     hash = q[i].split('='); 
     vars.push(hash[1]); 
     vars[hash[0]] = hash[1]; 
    } 
    } 

    $scope.firstName = vars['firstName']; 
    $scope.lastName = vars['lastName']; 
}); 

<body ng-app="dashboardApp"> 

<span class="username" ng-controller="userNameCtrl">{{firstName}} {{lastName}}</span> 

此代碼塊失敗,並沒有錯誤消息,但它崩潰的出路,同時吹出其餘的JavaScript塊

var dashboardApp = angular.module('dashboardApp', []); 

dashboardApp.controller('userNameCtrl', function ($scope, $location) { 

    alert("First Name is - " + $location.search()['firstName']); 

    var vars = [], hash; 
    var q = document.URL.split('?')[1]; 
    if (q != undefined) { 
    q = q.split('&'); 
    for (var i = 0; i < q.length; i++) { 
     hash = q[i].split('='); 
     vars.push(hash[1]); 
     vars[hash[0]] = hash[1]; 
    } 
    } 

    $scope.firstName = vars['firstName']; 
    $scope.lastName = vars['lastName']; 
}); 
1

從角度使用$ location provider。

你可以做var searchObject = $location.search();

然後得到這個對象的關鍵。像searchObject.lastName

angular.controller( 「CTRL」,[ '$位置',函數($位置){ /** Ctrl鍵代碼**/

}]);

+0

我第一次嘗試了這個方向,但是我得到一個錯誤:$ location是未定義的。既在jQuery(文檔).ready代碼塊內部和外部。 – pithhelmet

+0

你使用角?您必須在您的控制器中注入$ location – Don

+0

yes - 我添加了此代碼以驗證其正在工作 {{firstName}} {{lastName}} {{1 + 2}}和3顯示 – pithhelmet