第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

AngularJS,路由之間傳遞范圍

AngularJS,路由之間傳遞范圍

寶慕林4294392 2019-12-12 14:04:49
我遇到的情況是表單跨越了幾頁(yè)(可能并不理想,但這就是事實(shí))。我想為整個(gè)表單提供一個(gè)范圍,以便您隨身攜帶,以便用戶在步驟之間來(lái)回移動(dòng)時(shí),很容易記住狀態(tài)。所以我需要用非常偽的代碼來(lái)做:組 $scope.val = <Some dynamic data>單擊一個(gè)鏈接,然后將其路由到新模板(可能使用同一控制器)。$scope.val 仍應(yīng)與最后一頁(yè)上的值相同。是否以某種方式持久保存示波器的數(shù)據(jù)是解決此問(wèn)題的正確方法,還是還有其他方法?您是否甚至可以創(chuàng)建一個(gè)在路由之間具有持久作用域的控制器,當(dāng)然除了將其保存在數(shù)據(jù)庫(kù)中。
查看完整描述

3 回答

?
qq_花開(kāi)花謝_0

TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊

您需要使用服務(wù),因?yàn)榉?wù)會(huì)在您的應(yīng)用程序的整個(gè)生命周期中持續(xù)存在。


假設(shè)您要保存與用戶有關(guān)的數(shù)據(jù)


這是您定義服務(wù)的方式:


app.factory("user",function(){

        return {};

});

在第一個(gè)控制器中:


app.controller( "RegistrationPage1Controller",function($scope,user){

    $scope.user = user;

    // and then set values on the object

    $scope.user.firstname = "John";

    $scope.user.secondname = "Smith";

});


app.controller( "RegistrationSecondPageController",function($scope,user){

        $scope.user = user;

        // and then set values on the object

        $scope.user.address = "1, Mars";


    });


查看完整回答
反對(duì) 回復(fù) 2019-12-12
?
叮當(dāng)貓咪

TA貢獻(xiàn)1776條經(jīng)驗(yàn) 獲得超12個(gè)贊

該服務(wù)將起作用,但是僅使用普通作用域和控制器來(lái)實(shí)現(xiàn)此服務(wù)的邏輯方法是設(shè)置控制器和元素,以使其反映模型的結(jié)構(gòu)。特別是,您需要一個(gè)父元素和一個(gè)建立父作用域的控制器。表單的各個(gè)頁(yè)面應(yīng)位于作為父級(jí)的子級(jí)的視圖中。即使更新子視圖,父范圍也將保留。


我假設(shè)您正在使用ui-router,以便可以嵌套嵌套的命名視圖。然后用偽代碼:


<div ng-controller="WizardController">

  <div name="stepView" ui-view/>

</div>

然后,WizardController定義您要在多頁(yè)表單的各個(gè)步驟中保留的范圍變量(我將其稱(chēng)為“向?qū)А保?。然后,您的路線只會(huì)更新stepView。每個(gè)步驟可以具有自己的模板,控制器和范圍,但是它們的范圍在頁(yè)面之間丟失。但是WizardController中的作用域保留在所有頁(yè)面中。


要從子控制器中更新WizardController范圍,您將需要為每個(gè)范圍變量使用類(lèi)似的語(yǔ)法$scope.$parent.myProp = 'value'或setMyProp在WizardController上定義一個(gè)函數(shù)。否則,如果嘗試直接從子控制器設(shè)置父作用域變量,則最終只會(huì)在子項(xiàng)本身上創(chuàng)建一個(gè)新的作用域變量,從而遮蓋了父變量。


有點(diǎn)難以解釋?zhuān)瑢?duì)于缺乏完整的示例,我深表歉意?;旧希枰粋€(gè)父控制器來(lái)建立一個(gè)父作用域,該作用域?qū)⒈A粼诒韱蔚乃许?yè)面中。


查看完整回答
反對(duì) 回復(fù) 2019-12-12
?
ITMISS

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超8個(gè)贊

數(shù)據(jù)可以通過(guò)兩種方式在控制器之間傳遞


$rootScope

模型

下面的示例演示了使用模型傳遞值


app.js


angular.module('testApp')

  .controller('Controller', Controller)

  .controller('ControllerTwo', ControllerTwo)

  .factory('SharedService', SharedService);

SharedService.js


function SharedService($rootScope){


 return{

    objA: "value1",

    objB: "value2"

  }

}

//修改控制器A中的值


Controller.js


function Controller($scope, SharedService){


 $scope.SharedService = SharedService;


 $scope.SharedService.objA = "value1 modified";

}

//訪問(wèn)controllertwo中的值


ControllerTwo.js


function ControllerTwo($scope, SharedService){


 $scope.SharedService = SharedService;


 console.log("$scope.SharedService.objA"+$scope.SharedService.objA); // Prints "value1 modified"

}


查看完整回答
反對(duì) 回復(fù) 2019-12-12
  • 3 回答
  • 0 關(guān)注
  • 547 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)