目錄
本篇文章主要的介紹了關於angularjs文檔閱讀的scope指令,本文詳細的解讀了angularjs文檔閱讀的scope指令的完整使用方法。現在就讓我們一起來看這篇文章吧
" >本篇文章主要的介紹了關於angularjs文檔閱讀的scope指令,本文詳細的解讀了angularjs文檔閱讀的scope指令的完整使用方法。現在就讓我們一起來看這篇文章吧
scope" >scope
false
true
物件
scope綁定
字串綁定
雙向綁定
單向綁定
绑定方法
设置可选
首頁 web前端 js教程 AngularJS 文件閱讀scope指令你知道多少? angularjs文件所閱讀的scope指令的詳解

AngularJS 文件閱讀scope指令你知道多少? angularjs文件所閱讀的scope指令的詳解

Sep 07, 2018 pm 02:52 PM
angular.js directive

<h1 id="span-style-font-size-px-span-style-font-size-px-本篇文章主要的介紹了關於-a-href-http-www-php-cn-course-html-target-blank-angularjs-a-文檔閱讀的scope指令-本文詳細的解讀了angularjs文檔閱讀的scope指令的完整使用方法-現在就讓我們一起來看這篇文章吧-span-br-span"><span style="font-size: 16px;"><span style="font-size: 14px;">本篇文章主要的介紹了關於<a href="http://www.php.cn/course/47.html" target="_blank">angularjs</a>文檔閱讀的scope指令,本文詳細的解讀了angularjs文檔閱讀的scope指令的完整使用方法。現在就讓我們一起來看這篇文章吧</span><br></span></h1> <h1 id="span-style-font-size-px-scope-span"><span style="font-size: 16px;">scope</span></h1> <p>指令,是<code>AngularJS</code>最常用的功能,讓我們很容易在前台實現程式碼重複使用。而指令最精髓的地方,就在於指令內外域<code>scope</code>的互動方式。 </p> <p>本文屬於一篇對文件的翻譯加上一些自己對此的理解,因水平有限,可能某些地方翻譯的不通順,或者翻譯的錯了,歡迎大家批評指正。本文對<code>scope</code>的用法以及描述均翻譯自<code>AngularJS</code>英文文檔,文檔地址:AngularJS 官方文檔</p> <p><code>scope</code>屬性的值可以是<code>false</code>,可以是<code>true</code>,也可以是物件。 </p> <h2 id="false">false</h2> <p><code>false</code>:這是指令<code>scope</code>的預設屬性,不會為指令建立一個<code>scope</code>,這個指令會使用他的父<code>scope</code>。 </p> <h2 id="true">true</h2> <p><code>true</code>:為指令建立一個從父<code>scope</code>原型繼承的子<code>scope</code>。 </p> <h2 id="物件">物件</h2> <p><code>{key: value}</code>:為指令建立一個新的隔離<code>scope</code>,隔離<code>scope</code>和通常的<code>scope</code>的差別在於:隔離<code>scope</code>不從父<code>scope</code>做原型繼承。 </p> <p>不會從父<code>scope</code>做原型繼承,這對於建立可重複使用的元件非常有用,可重複使用元件不應該從父<code>scope</code>讀取或修改屬性。 </p> <p><strong>注意:一個有隔離<code>scope</code>但是沒有<code>template</code>或<code>templateUrl</code>的指令不會將隔離<code>scope</code>應用到它的子元素。 </strong>這是在文件上寫的,目前還沒有理解到究竟是什麼意思。 </p> <p>也可能是我翻譯的不對,以下是原文:</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">Note that an isolate scope directive without a template or templateUrl will not apply the isolate scope to its children elements.</pre><div class="contentsignin">登入後複製</div></div> <p>隔離物件定義了源自於指令元素的屬性的本機<code>scope</code>屬性集合。 </p> <h3 id="scope綁定">scope綁定</h3> <p>以下幾種綁定都是可以加參數的。 </p> <p>範例:</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">scope: {     name: '=nameAttr' }</pre><div class="contentsignin">登入後複製</div></div> <p>綁定的就是:<code><test name-attr="'hello'"></test></code>。 </p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">scope: {     name: '=' }</pre><div class="contentsignin">登入後複製</div></div> <p>綁定的就是:<code><test name="'hello'"></test></code>。 </p> <h3 id="字串綁定">字串綁定</h3> <p><code>@</code>/<code>@attr</code>:綁定本地<code>scope</code>的屬性到<code>DOM </code>屬性的值,這個結果總是一個字串,因為<code>DOM</code>屬性就是字串。隨著<code>DOM</code>屬性值的改變,指令<code>scope</code>上的屬性也會改變,因為這個屬性是在它的父<code>scope</code>上讀取的。 </p> <h3 id="雙向綁定">雙向綁定</h3> <p><code>=</code>/<code>=attr</code>:本地<code>scope</code>的屬性和傳遞到屬性上的表達式建立雙向綁定,該表達式是在父<code>scope</code>的範圍內計算的。如果綁定的表達式不是可賦值的,或者它不是可選的但是指令中沒有傳,<code>$compile:noassign</code>異常就會被拋出,因為它無法和父<code>scope</code>同步。 </p> <p>預設地,<code>$watch</code>方法通常用來監聽改變,並且根據物件的位址來進行相等判斷。然而,如果一個物件位址或陣列位址被傳遞到綁定的表達式中,比較的方法就是透過判斷值是否相等。也可以使用<code>=*</code>/<code>=*attr</code>和<code>$watchCollection</code>來進行淺監聽。 </p> <p>這段話還不是很理解,在<code>StackOverflow</code>找到了一個可靠的回答,但還不是很明白。 AngularJS =* 問題</p> <p>(想看更多就到PHP中文網<a href="http://www.php.cn/course/47.html" target="_blank">angularjs學習手冊</a>中學習)</p> <h3 id="單向綁定">單向綁定</h3> <p><code><</code>/<code><attr</code>:在本地<code>scope</code>和傳遞到<code>DOM</code>屬性上的表達式之間建立單向綁定,所有在<code>DOM</code>屬性上表達式的改變會反映在<code>scope</code>的屬性上,但是<code>scope</code>屬性上的改變不會反映在<code>DOM</code>屬性的表達式上。 </p> <p><strong>但是這有兩個警告:</strong></p> <p>1.單向綁定不是將父<code>scope</code>的值拷貝到隔離<code>scope </code>上,而是簡單的設定相同的值。如果你傳的是一個對象,那在隔離<code>scope</code>上對該對象的改變會反映到父<code>scope</code>上,因為兩者引用同一個對象。 </p> <p>2.单向绑定监视的是父值地址的改变。这意味着在父值上的<code>$watch</code>仅仅在引用的地址发生改变时才会生效。大多数情况下,这是不需要关心的。但是必须要知道如果你单向绑定了一个对象,然后会改变隔离<code>scope</code>上的对象,如果改变了父<code>scope</code>上的该对象的一个属性,这个改变是不会传递到隔离<code>scope</code>上的,因为这个对象的地址没有改变,除非你赋值一个新的对象。</p> <p>如果不打算将隔离<code>scope</code>的改变传播会父节点,单向绑定是很有用的。</p> <h3 id="绑定方法">绑定方法</h3> <p><code>&</code>/<code>&attr</code>:在父<code>scope</code>提供一个可执行的表达式,就是传一个方法。</p> <h3 id="设置可选">设置可选</h3> <p>所有的绑定(<code>@, =, <, &</code>)都能通过在表达式上添加<code>?</code>设置为可选的,这个标志必须在绑定模式之后,属性名称之前。</p> <p>可选和不可选的区别在于:</p> <ul class=" list-paddingleft-2"> <li><p>绑定是可选的,这个属性不会被定义。</p></li> <li><p>绑定不是可选的,这个属性被定义了。</p></li> </ul> <p>以下是<code>AngularJS</code>文档中对可选指令的示例代码。</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">app.directive('testDir', function() {   return {     scope: {       notoptional: '=',       optional: '=?',     },     bindToController: true,     controller: function() {       this.$onInit = function() {         console.log(this.hasOwnProperty('notoptional')); // true         console.log(this.hasOwnProperty('optional')); // false       }     }   }; });</pre><div class="contentsignin">登入後複製</div></div> <p>本篇文章到这就结束了(想看更多就到PHP中文网<a href="http://www.php.cn/course/47.html" target="_blank">angularjs学习手册</a>中学习),有问题的可以在下方留言提问</p> <p class="comments-box-content"></p>

以上是AngularJS 文件閱讀scope指令你知道多少? angularjs文件所閱讀的scope指令的詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

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

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

Angular學習之聊聊獨立組件(Standalone Component) Angular學習之聊聊獨立組件(Standalone Component) Dec 19, 2022 pm 07:24 PM

這篇文章帶大家繼續angular的學習,簡單了解一下Angular中的獨立組件(Standalone Component),希望對大家有幫助!

angular學習之詳解狀態管理器NgRx angular學習之詳解狀態管理器NgRx May 25, 2022 am 11:01 AM

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

淺析Angular中的獨立組件,看看怎麼使用 淺析Angular中的獨立組件,看看怎麼使用 Jun 23, 2022 pm 03:49 PM

這篇文章帶大家了解Angular中的獨立元件,看看怎麼在Angular中建立一個獨立元件,怎麼在獨立元件中導入已有的模組,希望對大家有幫助!

專案過大怎麼辦?如何合理拆分Angular項目? 專案過大怎麼辦?如何合理拆分Angular項目? Jul 26, 2022 pm 07:18 PM

Angular專案過大,怎麼合理拆分它?以下這篇文章跟大家介紹一下合理分割Angular專案的方法,希望對大家有幫助!

聊聊自訂angular-datetime-picker格式的方法 聊聊自訂angular-datetime-picker格式的方法 Sep 08, 2022 pm 08:29 PM

怎麼自訂angular-datetime-picker格式?以下這篇文章聊聊自訂格式的方法,希望對大家有幫助!

如何解決'[Vue warn]: Failed to resolve directive”錯誤 如何解決'[Vue warn]: Failed to resolve directive”錯誤 Aug 20, 2023 pm 05:54 PM

如何解決「[Vuewarn]:Failedtoresolvedirective」錯誤Vue.js是一款流行的JavaScript框架,它提供了許多有用的功能來開發互動式的網路應用程式。其中一個特性是指令(Directive),它可以用來擴充HTML元素的功能或新增特定的行為。然而,有時在使用指令時可能會遇到一個錯誤:「[Vuewarn]:F

手把手帶你了解Angular中的依賴注入 手把手帶你了解Angular中的依賴注入 Dec 02, 2022 pm 09:14 PM

這篇文章帶大家了解一下依賴注入,介紹一下依賴注入解決的問題和它原生的寫法是什麼,並聊聊Angular的依賴注入框架,希望對大家有所幫助!

Angular的:host、:host-context、::ng-deep選擇器 Angular的:host、:host-context、::ng-deep選擇器 May 31, 2022 am 11:08 AM

這篇文章帶大家深入了解angular中的幾個特殊選擇器:host、:host-context、::ng-deep,希望對大家有幫助!

See all articles