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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Angularjs“ Controller as”或“ $ scope”

Angularjs“ Controller as”或“ $ scope”

HUWWW 2019-12-04 10:12:36
我想知道angularjs中“ Controller as”或“ $ scope”語法之間的主要區(qū)別是什么。它們是否會對性能產(chǎn)生影響,如果可以,則首選哪種語法?!翱刂破鳛椤闭Z法肯定會提高代碼的可讀性,因為Knockout.js和其他JavaScript框架遵循相同的語法。$ scope將提供范圍繼承,有時會給我們帶來奇怪的行為,例如<div ng-controller="firstController"> ParentController: <input type="text" ng-model="parent"/>  <div ng-controller="secondController">    ChildController: <input type="text" ng-model="parent" />  </div></div>app.controller('ParentController', function ($scope) {  $scope.parent = "parentScope";}).controller('ChildController', function ($scope) { /*empty*/ }); a)最初child將獲得parent屬性,并且在我們更新父級時顯示“ parentScope”,child也將得到更新。但是,如果我們現(xiàn)在更改了child屬性,則更新父級不會修改child,因為它具有自己的scope屬性。b)如果我將控制器用作語法更改子節(jié)點,那么也會更新父節(jié)點。
查看完整描述

2 回答

?
牛魔王的故事

TA貢獻1830條經(jīng)驗 獲得超3個贊

過去,我已經(jīng)為這個問題寫了一些答案,它們基本上都歸結(jié)為同一件事。在Angular中$scope,即使沒有明確引用它,也正在使用。

ControllerAs語法使Angular可以幫助您編寫更高效,更容錯的控制器。在幕后,當(dāng)您使用ng-controller="theController as ctrl"Angular theController$scope,將在上創(chuàng)建為屬性,并將其分配為ctrl?,F(xiàn)在,您有了要從作用域引用的對象屬性,并且可以自動免受原型繼承問題的影響。

從性能的角度來看,由于您仍在使用$scope,因此幾乎沒有性能差異。但是,由于您的控制器現(xiàn)在不再$scope自己直接分配變量,因此不需要$scope注入。而且,由于現(xiàn)在它只是一個普通的JavaScript函數(shù),因此可以更容易地對控制器進行隔離測試。

從前瞻性的角度來看,現(xiàn)在眾所周知Angular 2.0尚不具備$scope,但將使用ECMAScript 6的功能。在Angular團隊發(fā)布的任何顯示遷移的預(yù)覽中,它們首先都是通過重構(gòu)控制器來消除的$scope。如果您的代碼是在不使用$scope基礎(chǔ)控制器的情況下設(shè)計的,那么遷移的第一步已經(jīng)完成。

從設(shè)計者的角度來看,ControllerAs語法使在對象的操作位置更加清晰。擁有customerCtrl.AddressstoreCtrl.Address使您更容易識別出您有一個由多個不同的控制器為不同目的分配的地址,這要比兩者都使用的容易$scope.Address。在頁面上具有兩個不同的HTML元素,這兩個HTML元素都已綁定{{Address}}并且僅通過控制器知道該元素包含在哪個元素中,這是解決問題的主要麻煩。

最終,除非您嘗試啟動一個10分鐘的演示,否則您真的應(yīng)該使用ControllerA進行任何嚴(yán)肅的Angular工作。


查看完整回答
反對 回復(fù) 2019-12-04
?
POPMUISE

TA貢獻1765條經(jīng)驗 獲得超5個贊

我肯定會推薦Controller As語法。

它更干凈,更高效,您可以組織更多代碼,這是AngularJS的新方法。

除非您與習(xí)慣于$ scope語法的團隊合作,否則請絕對使用Controller As。


查看完整回答
反對 回復(fù) 2019-12-04
  • 2 回答
  • 0 關(guān)注
  • 712 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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