国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 php教程 PHP開發(fā) Angular頁間切換及傳值的4種方法

Angular頁間切換及傳值的4種方法

Dec 07, 2016 pm 03:46 PM
angular 傳值

本文實例為大家分享了Angular JS頁麵切換及傳值的方法,供大家參考,具體內(nèi)容如下Angular JS頁邊切換及傳值

1. 基於ui-router的頁面跳轉(zhuǎn)傳參
(1 ) 在AngularJS的app.js中用ui-router定義路由,例如現(xiàn)在有兩個頁面,一個頁面(producers.html)放置了多個producers,點擊其中一個目標(biāo),頁面跳到對應(yīng)的producer頁,同時將producerId這個參數(shù)傳過去。

state('producers', {
 url: '/producers',
 templateUrl: 'views/producers.html',
 controller: 'ProducersCtrl'
})
.state('producer', {
 url: '/producer/:producerId',
 templateUrl: 'views/producer.html',
 controller: 'ProducerCtrl'
})

? ?


(2) 在producers.html中,定義點擊事件,例如ng-click="toProducer(producerId)",在ProducersCtrl值.go介面):

.controller('ProducersCtrl', function ($scope, $state) {
 $scope.toProducer = function (producerId) {
  $state.go('producer', {producerId: producerId});
 };
});

? ?


(3) 在ProducerCtrl中,透過ui-router的$stateParams取得參數(shù)producerId,譬如:

轉(zhuǎn)傳參

舉例:你有N個頁面,每個頁面都需要用戶填選信息,最終引導(dǎo)用戶至尾頁提交,同時後一個頁面要顯示前面所有頁面填寫的信息。這時候用factory傳參是比較合理的選擇(下面的程式碼是簡化版,依需求可以不同訂製):

.controller('ProducerCtrl', function ($scope, $state, $stateParams) {
 var producerId = $stateParams.producerId;
});

? ?


3. 基於factory和$rootScope.$broadcast()的傳參

(1) 舉例:在一個單頁中定義了nested views,你希望讓所有子作用域都監(jiān)聽到某個參數(shù)的變化,並且作出相應(yīng)動作。例如一個地圖應(yīng)用,某個$state中定義元素input,輸入地址後,地圖要定位,同時另一個狀態(tài)下的列表要顯示出該位置週邊商舖的信息,此時多個$scope都在監(jiān)聽地址變化。
PS: $rootScope.$broadcast()可以非常方便的設(shè)定全域事件,並讓所有子作用域都監(jiān)聽到。

.factory('myFactory', function () {
 //定義factory返回對象
 var myServices = {};
 //定義參數(shù)對象
 var myObject = {};
  
 /**
  * 定義傳遞數(shù)據(jù)的set函數(shù)
  * @param {type} xxx
  * @returns {*}
  * @private
  */
 var _set = function (data) {
  myObject = data; 
 };
 
 /**
  * 定義獲取數(shù)據(jù)的get函數(shù)
  * @param {type} xxx
  * @returns {*}
  * @private
  */
 var _get = function () {
  return myObject;
 };
 
 // Public APIs
 myServices.set = _set;
 myServices.get = _get;
  
 // 在controller中通過調(diào)set()和get()方法可實現(xiàn)提交或獲取參數(shù)的功能
 return myServices;
  
});

? ?


(2) 在取得位址的controller中:

.factory('addressFactory', ['$rootScope', function ($rootScope) {
 // 定義所要返回的地址對象
 var address = {};
  
 // 定義components數(shù)組,數(shù)組包括街道,城市,國家等
 address.components = [];
 
 // 定義更新地址函數(shù),通過$rootScope.$broadcast()設(shè)置全局事件'AddressUpdated'
 // 所有子作用域都能監(jiān)聽到該事件
 address.updateAddress = function (value) {
 this.components = value.slice();
 $rootScope.$broadcast('AddressUpdated');
 };
  
 // 返回地址對象
 return address;
}]);

? ?


(3) 在監(jiān)聽

4. 基於localStorage或sessionStorage的頁面跳轉(zhuǎn)傳參

注意事項:透過LS或SS傳參,一定要監(jiān)聽變量,否則參數(shù)改變時,取得變數(shù)的一端不會更新。 AngularJS有一些現(xiàn)成的WebStorage dependency可以使用,譬如gsklee/ngStorage · GitHub,grevory/angular-local-storage · GitHub。以下使用ngStorage來簡述傳參過程:

(1) 上傳參數(shù)到localStorage - Controller A

// 動態(tài)獲取地址,接口方法省略
var component = {
 addressLongName: xxxx,
 addressShortName: xxxx,
 cityLongName: xxxx,
 cityShortName: xxxx  
};
 
// 定義地址數(shù)組
$scope.components = [];
 
$scope.$watch('components', function () {
 // 將component對象推入$scope.components數(shù)組
 components.push(component);
 // 更新addressFactory中的components
 addressFactory.updateAddress(components);
});

? ?


(2) 中聽鈴就是Angular頁間切換及傳值的4種方法的內(nèi)容,更多相關(guān)內(nèi)容請關(guān)注PHP中文網(wǎng)(www.miracleart.cn)!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1600
29
PHP教程
1502
276
如何在Ubuntu 24.04上安裝Angular 如何在Ubuntu 24.04上安裝Angular Mar 23, 2024 pm 12:20 PM

Angular.js是一種可自由存取的JavaScript平臺,用於建立動態(tài)應(yīng)用程式。它允許您透過擴展HTML的語法作為模板語言,以快速、清晰地表示應(yīng)用程式的各個方面。 Angular.js提供了一系列工具,可協(xié)助您編寫、更新和測試程式碼。此外,它還提供了許多功能,如路由和表單管理。本指南將討論在Ubuntu24上安裝Angular的方法。首先,您需要安裝Node.js。 Node.js是一個基於ChromeV8引擎的JavaScript運行環(huán)境,可讓您在伺服器端執(zhí)行JavaScript程式碼。要在Ub

淺析angular中怎麼使用monaco-editor 淺析angular中怎麼使用monaco-editor Oct 17, 2022 pm 08:04 PM

angular中怎麼使用monaco-editor?以下這篇文章記錄下最近的一次業(yè)務(wù)中用到的 m??onaco-editor 在 angular 中的使用,希望對大家有幫助!

如何使用PHP和Angular進行前端開發(fā) 如何使用PHP和Angular進行前端開發(fā) May 11, 2023 pm 04:04 PM

隨著網(wǎng)路的快速發(fā)展,前端開發(fā)技術(shù)也不斷改進與迭代。 PHP和Angular是兩種廣泛應(yīng)用於前端開發(fā)的技術(shù)。 PHP是一種伺服器端腳本語言,可以處理表單、產(chǎn)生動態(tài)頁面和管理存取權(quán)限等任務(wù)。而Angular是一種JavaScript的框架,可以用來開發(fā)單一頁面應(yīng)用程式和建構(gòu)元件化的網(wǎng)頁應(yīng)用程式。本篇文章將介紹如何使用PHP和Angular進行前端開發(fā),以及如何將它們

聊聊Angular中的元資料(Metadata)和裝飾器(Decorator) 聊聊Angular中的元資料(Metadata)和裝飾器(Decorator) Feb 28, 2022 am 11:10 AM

這篇文章繼續(xù)Angular的學(xué)習(xí),帶大家了解Angular中的元數(shù)據(jù)和裝飾器,簡單了解一下他們的用法,希望對大家有幫助!

angular學(xué)習(xí)之詳解狀態(tài)管理器NgRx angular學(xué)習(xí)之詳解狀態(tài)管理器NgRx May 25, 2022 am 11:01 AM

這篇文章帶大家深入了解angular的狀態(tài)管理器NgRx,介紹一下NgRx的使用方法,希望對大家有幫助!

一文探究Angular中的服務(wù)端渲染(SSR) 一文探究Angular中的服務(wù)端渲染(SSR) Dec 27, 2022 pm 07:24 PM

你知道 Angular Universal 嗎?可以幫助網(wǎng)站提供更好的 SEO 支援哦!

Angular + NG-ZORRO快速開發(fā)一個後臺系統(tǒng) Angular + NG-ZORRO快速開發(fā)一個後臺系統(tǒng) Apr 21, 2022 am 10:45 AM

這篇文章跟大家分享一個Angular實戰(zhàn),了解一下angualr 結(jié)合 ng-zorro 如何快速開發(fā)一個後臺系統(tǒng),希望對大家有幫助!

使用Angular和Node進行基於令牌的身份驗證 使用Angular和Node進行基於令牌的身份驗證 Sep 01, 2023 pm 02:01 PM

身份驗證是任何網(wǎng)路應(yīng)用程式中最重要的部分之一。本教程討論基於令牌的身份驗證系統(tǒng)以及它們與傳統(tǒng)登入系統(tǒng)的差異。在本教程結(jié)束時,您將看到一個用Angular和Node.js編寫的完整工作演示。傳統(tǒng)身份驗證系統(tǒng)在繼續(xù)基於令牌的身份驗證系統(tǒng)之前,讓我們先來看看傳統(tǒng)的身份驗證系統(tǒng)。使用者在登入表單中提供使用者名稱和密碼,然後點擊登入。發(fā)出請求後,透過查詢資料庫在後端驗證使用者。如果請求有效,則使用從資料庫中獲取的使用者資訊建立會話,然後在回應(yīng)頭中傳回會話訊息,以便將會話ID儲存在瀏覽器中。提供用於存取應(yīng)用程式中受

See all articles