日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

angular.js - angularjs scope.$watch取不到input變化的值

瀏覽:263日期:2024-10-14 11:55:13

問題描述

我想用angularjs和my97datepicker做一個(gè)東西,寫了一個(gè)direcitve,在點(diǎn)擊選擇完時(shí)間之后,把值同步到scope上面。描述的有點(diǎn)亂,看下主要代碼:

javascriptvar datepicker=angular.module('datepicker',[]);datepicker.controller('datepickerCtrl',function($scope){ $scope.date='2014-10-14';});datepicker.directive('datePicker',function(){ return {restrict:'A',link:function(scope,element,attr){ element.bind('click',function(){window.WdatePicker(); }); //問題在這里,無法取到變化的值,而且加上這個(gè),連初始的值都無法顯示出來。 scope.$watch(attr.value,function(newVal){scope.date=newVal; });} };});

在線地址:http://jsfiddle.sinaapp.com/4zz6nvadg/embedded。初學(xué)angularjs,每次寫directive都是卡在$watch這里。

問題解答

回答1:

我不知道怎么解決,因?yàn)槟阌玫哪莻€(gè)插件我沒有用過,現(xiàn)在也沒時(shí)間去研究它。不過我可以告訴你問題出在哪里,你試著自己找找解決方案吧。先看截圖:

angular.js - angularjs scope.$watch取不到input變化的值

先注釋了 $watch 相關(guān)的代碼,以確保插件正確執(zhí)行注意下面:2014-10-14 出現(xiàn)在 DOM 的哪里了嗎?在 $watch 部分你監(jiān)視的是 attr.value,然而根據(jù)截圖可以發(fā)現(xiàn)插件設(shè)定的日期根本就不是保存在 input[value] 這里,無論如何 input[value] 都是空值因此,$watch 所做的僅僅是讀取一個(gè)不存在的值,并且覆蓋了 model,這就是為什么加上 $watch 部分之后,連 model 都失效的緣故。

知道原因之后,解決辦法就簡(jiǎn)單了,要么讓插件把你想要的值寫到 input[value] 去,要么反過來,找到正確的地方去取值去 $watch,具體辦法自己去查詢插件的文檔或源碼吧。

吃了晚飯,幫你看一下插件的源代碼,實(shí)際上人家提供了幾個(gè)事件回調(diào)函數(shù),而且你不必非用 $watch 的,代碼如下:

var datepicker=angular.module('datepicker',[]);datepicker.controller('datepickerCtrl',function($scope){ $scope.date='2014-10-14';});datepicker.directive('datePicker',function(){ return { restrict:'A', link:function(scope, element, attr){ element.bind('click', function () {window.WdatePicker({ onpicked: function () { scope.$apply(scope.date = this.value); }}); }); } };});

Demo: http://jsfiddle.sinaapp.com/4zz6n9usy

想用 $watch 也可以,這樣寫:

var datepicker=angular.module('datepicker',[]);datepicker.controller('datepickerCtrl',function($scope){ $scope.date='2014-10-14';});datepicker.directive('datePicker',function(){ return { restrict:'A', link:function(scope, element, attr){ element.bind('click', function () {window.WdatePicker({ onpicked: function () { scope.$digest(); }}); }); scope.$watch(function () { return element[0].value },function (newValue) { scope.date = newValue; } ); } };});

Demo: http://jsfiddle.sinaapp.com/4zz6n9t9q

注意,這里第一個(gè)參數(shù)不能是直接 element[0].value,因?yàn)檫@個(gè)值是一個(gè) primitive string,而不是 angular 封裝過的對(duì)象,所以要用一個(gè) getter 函數(shù)顯式的去獲取,否則你拿不到的。

而且這里還必須得依賴插件的回調(diào)函數(shù)做一下 scope.$digest(),否則 scope.date 不會(huì)自動(dòng)更新。由此可見,還是第一個(gè)例子更簡(jiǎn)單,性能也更好。

回答2:

不知道為何要這么用,這里你需要明確一個(gè)概念,屬性和 scope 是不同的,如果要綁定屬性值到 scope 中,需要在 directive 中去做 scope 的聲明,有以下三種方式:

=attr 雙向@attr 單向&attr 函數(shù)

按照你的思路,可能是下面的方式:

scope: { value: ’=value’}

但即使是做了綁定,還要明白這個(gè)元素的 value 的值變更并不是 Angular 默認(rèn)會(huì)做監(jiān)控的,這個(gè)綁定只是說要去綁定這個(gè)屬性值對(duì)應(yīng)的變量,當(dāng)然無法 watch 到 value 的變更。其實(shí)用 ng-model 和 ng-change 足夠了。

最終可能是這樣:

<input ng-model='date' date-picker />回答3:

試試把$scope傳進(jìn)來!$watch是在$scope基礎(chǔ)上的

回答4:

沒找到link的詳細(xì)文檔,不能確定attr的具體使用方法,不過覺得你可以試試$watch一下element的value。

至于樓上2位,在directive里scope就是它的$scope,attr是link里的一個(gè)參數(shù),不需要另外定義。

回答5:

樓主你好,請(qǐng)問這個(gè)問題最后如何解決,我現(xiàn)在是ng-model取到的值還是undefined

相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品久久久久久av公交车| 91综合网人人| 99视频精品全国免费| 久久精品99国产精品| 亚洲精品人人| 亚洲精品人人| 日本视频在线一区| 国产伦精品一区二区三区视频| 国产欧美69| 国产精品久一| 久久精品国产99国产精品| 久久久久伊人| 国产66精品| 久久精品一区二区不卡| 久久国产成人午夜av影院宅| 99久久婷婷| 奶水喷射视频一区| 日韩精品一区二区三区中文在线 | 精品国产中文字幕第一页 | 国产免费久久| 精品国产鲁一鲁****| 欧美成人a交片免费看| 午夜av成人| 噜噜噜久久亚洲精品国产品小说| 日韩制服丝袜av| 日韩国产欧美一区二区三区| 国产精品网址| 日韩在线精品| 在线综合亚洲| 欧美亚洲人成在线| 久久精品国产一区二区| 日韩精品欧美| 亚洲三级av| 久久久国产精品入口麻豆| 蜜臀国产一区| 久久午夜精品| 国产精品视频一区视频二区| 亚洲黄色网址| 丝袜美腿亚洲一区| 欧美aa在线视频| 欧美在线亚洲| 国产精品tv| 欧美 日韩 国产一区二区在线视频 | 精品国产一区二区三区av片| 91欧美在线| 亚洲欧美日韩在线观看a三区 | 亚洲综合电影一区二区三区| 国产精品手机在线播放| 青青久久av| 亚欧成人精品| 成人午夜网址| 丝袜国产日韩另类美女| 国产福利一区二区三区在线播放| 99久久99久久精品国产片果冰| 日本中文字幕视频一区| 91青青国产在线观看精品| 伊人久久亚洲| 日韩一区电影| 91成人福利| 91精品久久久久久久久久不卡| 亚洲免费毛片| 日韩天堂在线| 久久国产三级| 国产视频一区三区| 免费在线观看一区| 日韩一区二区免费看| 精品国内亚洲2022精品成人 | 蜜桃tv一区二区三区| 日韩激情中文字幕| 99久精品视频在线观看视频| 欧美日韩1区| 五月天久久久| 久久一区视频| 亚洲精选成人| 欧美日韩第一| 成人在线观看免费视频| 香蕉久久久久久| 亚洲福利专区| 国产精品久久久久久妇女 | 蜜臀91精品一区二区三区| 国产精品99视频| 日韩国产91| 在线亚洲一区| 私拍精品福利视频在线一区| 国产欧美一区二区三区国产幕精品| 国产亚洲午夜| 久久婷婷久久| 你懂的亚洲视频| 五月国产精品| 欧美午夜不卡影院在线观看完整版免费| 久久不见久久见免费视频7| 久久亚洲精品伦理| 欧美日中文字幕| 国产美女高潮在线观看| 国产精品久久乐| 88久久精品| 婷婷精品在线| 天堂av在线一区| 黑丝一区二区| 不卡一区综合视频| 久久人人精品| 亚洲精品国产嫩草在线观看 | 久久精品三级| 青青草视频一区| 中文字幕成人| 视频在线观看一区二区三区| 亚洲女同一区| 欧美成人久久| 久久中文亚洲字幕| 99久久亚洲精品蜜臀| 日韩久久精品| 日韩三区在线| 亚洲精品永久免费视频| 国产中文字幕一区二区三区| 欧美国产精品| 麻豆久久久久久| 久久一区国产| 国产精品久久久久蜜臀 | 欧美极品一区二区三区| 国产日韩三级| 国产精品流白浆在线观看| 国产精品羞羞答答在线观看| 国产精品调教视频| 国产精品日韩精品中文字幕| 91成人精品在线| 久久激情综合网| 国产精品亚洲片在线播放| 欧美中文高清| 国产精品传媒麻豆hd| 欧美黄色一区二区| 欧美激情日韩| 久久99国产精品视频| 国产日韩视频| 免费一区二区三区在线视频| 久久丁香四色| 四虎8848精品成人免费网站| 国产精品国产三级国产在线观看| 高清精品久久| 亚洲福利免费| 综合亚洲视频| 久久av免费看| 久久精品官网| 亚洲一二av| 国产精品白丝一区二区三区| 91亚洲一区| 午夜国产精品视频| 亚洲18在线| 国产情侣久久| 色婷婷色综合| 日韩午夜免费| 欧美片第1页综合| 成人片免费看| 欧美日韩国产免费观看| 亚洲啊v在线免费视频| 国产欧美在线观看免费| 日本午夜大片a在线观看| 欧美理论视频| 日韩精品乱码av一区二区| 国产亚洲人成a在线v网站| 在线天堂中文资源最新版| 欧美日韩少妇| 国产精品伊人| 成人在线网站| 尤物网精品视频| 国产精品免费精品自在线观看| 国产精品视频3p| 欧洲一级精品| 亚洲精品四区| 国产在线日韩精品| aa国产精品| 国产劲爆久久| 欧美福利专区| 国产精品视频一区二区三区| 日韩精品一区二区三区免费观影| 亚洲精品大片| 国产精品字幕| 欧美日韩 国产精品| 四虎成人av| 丝袜a∨在线一区二区三区不卡| 欧美激情五月| 99国产精品久久久久久久成人热| 国产精品亚洲综合久久| 91精品在线观看国产| 日韩一区精品| 日韩电影免费网站| 午夜精品影视国产一区在线麻豆| 91av亚洲| 亚洲1区在线| 久久美女精品| 久久99久久久精品欧美| 99国产精品免费视频观看| 日韩成人午夜精品| 亚洲va中文在线播放免费| 中文字幕av亚洲精品一部二部 | 精品一二三区| 免费久久99精品国产| 久久久久久自在自线| 日韩精品亚洲专区| 亚洲国产专区| 精品一区二区三区中文字幕视频 |