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

您的位置:首頁技術文章
文章詳情頁

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

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

問題描述

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

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(); }); //問題在這里,無法取到變化的值,而且加上這個,連初始的值都無法顯示出來。 scope.$watch(attr.value,function(newVal){scope.date=newVal; });} };});

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

問題解答

回答1:

我不知道怎么解決,因為你用的那個插件我沒有用過,現在也沒時間去研究它。不過我可以告訴你問題出在哪里,你試著自己找找解決方案吧。先看截圖:

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

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

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

吃了晚飯,幫你看一下插件的源代碼,實際上人家提供了幾個事件回調函數,而且你不必非用 $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

注意,這里第一個參數不能是直接 element[0].value,因為這個值是一個 primitive string,而不是 angular 封裝過的對象,所以要用一個 getter 函數顯式的去獲取,否則你拿不到的。

而且這里還必須得依賴插件的回調函數做一下 scope.$digest(),否則 scope.date 不會自動更新。由此可見,還是第一個例子更簡單,性能也更好。

回答2:

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

=attr 雙向@attr 單向&attr 函數

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

scope: { value: ’=value’}

但即使是做了綁定,還要明白這個元素的 value 的值變更并不是 Angular 默認會做監控的,這個綁定只是說要去綁定這個屬性值對應的變量,當然無法 watch 到 value 的變更。其實用 ng-model 和 ng-change 足夠了。

最終可能是這樣:

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

試試把$scope傳進來!$watch是在$scope基礎上的

回答4:

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

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

回答5:

樓主你好,請問這個問題最后如何解決,我現在是ng-model取到的值還是undefined

相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品成人自拍| 亚洲欧美网站| 欧美成人一二区| 国产精品蜜月aⅴ在线| 国产欧美日韩在线一区二区| 国产精品毛片aⅴ一区二区三区| 国产欧美久久一区二区三区| 国产精品综合| 久久久精品区| 免费福利视频一区二区三区| 99久久久久| 亚洲一区国产一区| 日韩中文一区二区| 国产精品美女在线观看直播| 精品高清久久| 久久久9色精品国产一区二区三区| 日韩精品91| 婷婷综合网站| 蜜桃视频第一区免费观看| 日本免费新一区视频| 麻豆国产一区| 欧美午夜精品一区二区三区电影| av不卡在线看| 日韩成人一级| 激情视频网站在线播放色| 免费欧美一区| 日韩1区2区3区| 国产精品99一区二区三| 女主播福利一区| 国产日韩欧美| 日韩不卡视频在线观看| 国产精品人人爽人人做我的可爱| 自拍自偷一区二区三区| 欧美激情在线精品一区二区三区| 日本精品不卡| 综合视频一区| 中文在线免费视频| 91久久久精品国产| 国产日韩欧美在线播放不卡| 日韩av首页| 911亚洲精品| 日韩精品第一区| 中文字幕一区二区三区日韩精品| 国产精品久久国产愉拍| 欧美一级精品| 久久精品99国产国产精| 欧美韩日一区| 欧美综合二区| а√天堂8资源中文在线| 麻豆精品网站| 综合日韩av| 亚洲精品日本| 久久精品国产www456c0m| 欧美一级二级三级视频| 在线手机中文字幕| 日韩高清不卡在线| 久久精品国产www456c0m| 欧美日韩一区二区三区不卡视频| 99久久久久| 美女视频黄久久| 免费在线欧美视频| 久久精品国产网站| 麻豆91精品| 日韩欧美一区二区三区在线观看| 免费人成网站在线观看欧美高清| 国产一区二区亚洲| 蜜桃久久av一区| 青青青免费在线视频| 亚洲免费观看高清完整版在线观| 日韩一区欧美| 国产精品1luya在线播放| 欧美精品黄色| 日韩国产综合| 国产精品成人自拍| 中文字幕成人| 欧美美女一区| 国产一区二区三区不卡av| 综合激情一区| 欧美不卡视频| 国产高潮在线| 欧美一级二级三级视频| 91成人超碰| 不卡福利视频| 麻豆一区二区三| 日韩三区四区| 欧美在线资源| 色综合www| 日韩精品欧美大片| 蜜桃一区二区三区在线| 日本不卡免费高清视频在线| 视频在线观看91| 久久电影tv| 精品一区二区三区视频在线播放 | 日韩在线一区二区| 日韩精品一区二区三区中文在线| 日韩欧美一区二区三区在线视频| 国产欧美一区二区三区米奇| 亚州av日韩av| 免费人成在线不卡| 尤物精品在线| 亚洲国产一区二区在线观看| 精品国产亚洲日本| 91亚洲精品在看在线观看高清| 欧美专区18| 久久国产精品99国产| 激情91久久| 欧美日韩水蜜桃| 99久久精品国产亚洲精品| 国产精品亚洲一区二区三区在线观看| 欧美激情日韩| 麻豆高清免费国产一区| 鲁大师精品99久久久| 国产精品观看| 欧美激情麻豆| 精品午夜av| 高清av一区| 精品资源在线| 另类综合日韩欧美亚洲| 麻豆精品一区二区综合av| 精品三级在线观看视频| 麻豆视频在线看| 国产精品成人一区二区不卡| 国模精品一区| 色婷婷亚洲mv天堂mv在影片| 中文字幕在线视频久| 欧洲av一区二区| 免费黄色成人| 免费在线欧美视频| 精品国产欧美日韩一区二区三区| 九九99久久精品在免费线bt| 中文字幕日本一区二区| 亚洲免费影视| 夜夜嗨网站十八久久| 亚洲欧洲美洲国产香蕉| 欧美日一区二区三区在线观看国产免| 麻豆国产精品视频| 日韩毛片在线| 欧美激情福利| 日本不卡中文字幕| 精精国产xxxx视频在线野外| 久久激情一区| 国产亚洲激情| 日本精品一区二区三区在线观看视频| 91精品国产自产观看在线| 欧美黑人做爰爽爽爽| 色一区二区三区| 99国内精品| 久久成人精品| 国产欧美日韩综合一区在线播放| 久久影院一区二区三区| 日韩精品中文字幕第1页| 国精品一区二区| 麻豆亚洲精品| 日本欧美久久久久免费播放网| 国产精品白浆| 日韩精品一卡| 亚洲精品综合| 精品一级视频| 国产一区久久| 日韩激情啪啪| 亚洲国产成人二区| 性色一区二区| 欧美亚洲tv| 亚洲天堂一区二区| 亚洲视频二区| 超碰99在线| 中文字幕日韩亚洲| 国产成人免费精品| 99视频一区| 久久伊人国产| 亚洲主播在线| 狂野欧美性猛交xxxx| 欧美国产91| 日本三级亚洲精品| 成人午夜国产| 美女网站久久| 亚洲婷婷在线| 亚洲综合不卡| 91亚洲一区| 国产精品入口久久| 欧美有码在线| 国产精品一区免费在线| 久久不见久久见中文字幕免费| 国产另类在线| 麻豆91在线播放| 999视频精品| 中文一区一区三区免费在线观 | 麻豆成人在线观看| 性欧美69xoxoxoxo| 麻豆精品久久| 日韩天堂av| 欧美xxxx中国| 亚洲tv在线| 亚洲高清二区| 久久精品国产免费| 亚洲开心激情| 色婷婷狠狠五月综合天色拍| 国产精品一区二区精品| 在线精品小视频| 黄色aa久久|