亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

textarea的內(nèi)容改變,綁定的model卻沒更新

leeon / 2421人閱讀

摘要:問題描述我修改的內(nèi)容時,綁定的完全沒更新,只能用插件看一下。也就是說與綁定的實際上是中的。只需改,將顯示綁定到使用對象的形式來綁定為什么一個就能解決問題了呢,以第二個方法為例。

問題描述:
//app.js
angular.module("deapp", [])
.controller("ParentCtrl", ["$scope", ParentCtrl])
.controller("ChildCtrl", ["$scope", ChildCtrl]);

function ParentCtrl($scope) {
  $scope.description = "";
}

function ChildCtrl($scope) {
}

//index.html

我修改textarea的內(nèi)容時,綁定的description完全沒更新,只能用chrome插件ng-inspector看一下。


圖1 初始scope


圖2 輸入后ChildCtrl 出現(xiàn)description

所以可以看到問題變成了Angular Scope Inheritance

Angular Scope Inheritance

我用word文檔畫了scope的繼承圖示,如下


圖3 初始scope


圖 4 錯誤的給ChildCtrl添加了description

在這個圖可以看到實際上并沒有更新父級scope的description,反而在當(dāng)前所在的ChildCtrl scope新建了description。也就是說與textarea綁定的model實際上是ChildCtrl scope中的description。

$scope的繼承是原型鏈繼承,有兩個特點:

讀子類的屬性時,子類有這個屬性(hasOwnProperty)的時候則讀子類自己的,子類沒有的時候讀父類的,不管子類有沒有這個屬性,在子類上都不會有新屬性被創(chuàng)建。

寫子類的屬性時,如果子類有這個屬性(hasOwnProperty)則寫子類的,子類沒有的話就會在子類上新建一個同名的新屬性,而父類繼承過來的屬性被隱藏。
————來自http://pinkyjie.com/2015/02/07/prototypal-inheritance-of-scope-in-angularjs/

所以對于description也是一樣,讀description時,先在ChildCtrl中讀,讀不到就到ParentCtrl中讀,所以事先給ParentCtrl的description設(shè)置的初始值,在頁面刷新后是可以顯示出來的。

但是,寫description的時候就不一樣了,在ChildCtrl中找不到就直接創(chuàng)建一個新的屬性,父級scope的同名屬性就被隱藏了,textarea綁定的模型也就變成了ChildCtrl scope中的description,往后再怎么修改textarea的內(nèi)容,父級scope的description永遠(yuǎn)保持原來的值。

這不是我想看到的,辦法是有的,使用.就能解決這個問題了。

只需改html,將textarea顯示綁定到$parent.description

 

使用對象的形式來綁定description

// app.js
function ParentCtrl($scope) {

 $scope.info = {
   description: "156"
 };

}

function ChildCtrl($scope) {
}

// index.html

 

為什么一個.就能解決問題了呢,以第二個方法為例。
寫的時候是寫info.description,需要先讀info,ChildCtrl沒有info,于是去ParentCtrl讀,找到info后,就寫父級scope的info.description。
Angular Scope Inheritance的詳細(xì)圖文解說

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/86102.html

相關(guān)文章

  • 【Vue原理】VModel - 白話版

    摘要:執(zhí)行的時候,會綁定上下文對象為組件實例于是中的就能取到組件實例本身,的代碼塊頂層作用域就綁定為了組件實例于是內(nèi)部變量的訪問,就會首先訪問到組件實例上。其中的獲取,就會先從組件實例上獲取,相當(dāng)于。 寫文章不容易,點個贊唄兄弟專注 Vue 源碼分享,文章分為白話版和 源碼版,白話版助于理解工作原理,源碼版助于了解內(nèi)部詳情,讓我們一起學(xué)習(xí)吧研究基于 Vue版本 【2.5.17】 如果你覺得...

    keke 評論0 收藏0
  • 【Vue原理】VModel - 源碼版 之 表單元素綁定流程

    摘要:首先,兄弟,容我先說幾句涉及源碼很多,篇幅很長,我都已經(jīng)分了上下三篇了,依然這么長,但是其實內(nèi)容都差不多一樣,但是我還是毫無保留地給你了。 寫文章不容易,點個贊唄兄弟專注 Vue 源碼分享,文章分為白話版和 源碼版,白話版助于理解工作原理,源碼版助于了解內(nèi)部詳情,讓我們一起學(xué)習(xí)吧研究基于 Vue版本 【2.5.17】 如果你覺得排版難看,請點擊 下面鏈接 或者 拉到 下面關(guān)注公眾號也...

    sarva 評論0 收藏0
  • Vue面試中,經(jīng)常會被問到面試題/知識點(2019改進(jìn)版)

    摘要:在第一版的基礎(chǔ)上進(jìn)行了優(yōu)化,新增一些面試題知識點,對一些知識點進(jìn)行更加深入的描述??梢栽谠撱^子中進(jìn)一步地更改狀態(tài),不會觸發(fā)附加的重渲染過程。改變中的狀態(tài)的唯一途徑就是顯式地提交。這兩個可以在不進(jìn)行刷新的情況下,操作瀏覽器的歷史紀(jì)錄。 在第一版的基礎(chǔ)上進(jìn)行了優(yōu)化,新增一些面試題/知識點,對一些知識點進(jìn)行更加深入的描述。 一、對于MVVM的理解? MVVM 是 Model-View-Vie...

    singerye 評論0 收藏0
  • 用ES6class模仿Vue寫一個雙向綁定

    摘要:原文地址的博客點擊在線嘗試一下最終效果如下構(gòu)造器構(gòu)造一個對象,包含基本的,,初始化編譯器用于解析綁定到輸入框和下拉框的和元素的點擊事件。 原文地址:Bougie的博客 點擊在線嘗試一下 最終效果如下: showImg(https://segmentfault.com/img/remote/1460000014485648?w=470&h=421); 構(gòu)造器(construct...

    waltr 評論0 收藏0
  • VueJS源碼學(xué)習(xí)——項目結(jié)構(gòu)&目錄

    摘要:所以整個的核心,就是如何實現(xiàn)這三樣?xùn)|西以上摘自囧克斯博客的一篇文章從版本開始這個時候的項目結(jié)構(gòu)如下源碼在里面,為打包編譯的代碼,為打包后代碼放置的位置,為測試代碼目錄。節(jié)點類型摘自資源另一位作者關(guān)于源碼解析 本項目的源碼學(xué)習(xí)筆記是基于 Vue 1.0.9 版本的也就是最早的 tag 版本,之所以選擇這個版本,是因為這個是最原始沒有太多功能拓展的版本,有利于更好的看到 Vue 最開始的骨...

    ad6623 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<