最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

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

Angularjs“ Controller as”或“ $ scope”

Angularjs“ Controller as”或“ $ scope”

HUWWW 2019-12-04 10:12:36
我想知道angularjs中“ Controller as”或“ $ scope”語法之間的主要區(qū)別是什么。它們是否會(huì)對(duì)性能產(chǎn)生影響,如果可以,則首選哪種語法?!翱刂破鳛椤闭Z法肯定會(huì)提高代碼的可讀性,因?yàn)镵nockout.js和其他JavaScript框架遵循相同的語法。$ scope將提供范圍繼承,有時(shí)會(huì)給我們帶來奇怪的行為,例如<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屬性,并且在我們更新父級(jí)時(shí)顯示“ parentScope”,child也將得到更新。但是,如果我們現(xiàn)在更改了child屬性,則更新父級(jí)不會(huì)修改child,因?yàn)樗哂凶约旱膕cope屬性。b)如果我將控制器用作語法更改子節(jié)點(diǎn),那么也會(huì)更新父節(jié)點(diǎn)。
查看完整描述

2 回答

?
牛魔王的故事

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

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

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

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

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

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

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


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

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

我肯定會(huì)推薦Controller As語法。

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

除非您與習(xí)慣于$ scope語法的團(tuán)隊(duì)合作,否則請(qǐng)絕對(duì)使用Controller As。


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

添加回答

舉報(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)