angular.js - angular自定義指令中如何監(jiān)視屬性值的變化
問題描述
html
<p on-test data={{userinfo}}></p>//自定義指令on-test,contorller中通過ajax的方式從后臺拿到userinfo,userinfo是一段很長的json字符串,會隨著用戶的操作而變化
directive
app.directive(’onTest’, function () { return {restrict: ’A’,scope:{ test:’@data’},link: function(scope , element, attr) { console.log(scope) /** *我想在這里拿到后臺傳過來的userinfo字符串,通過userinfo操作我的dom界面 **/} };});
我的疑惑:
我在link中打印scope,可以看到傳遞過來的數(shù)據(jù),但是通過scope.test的方式無法獲取我的數(shù)據(jù)
問題解答
回答1:<p ng-app='app' ng-init='userinfo=’123’'> <input type='text' ng-model='userinfo' />{{userinfo}} <p on-test data='{{userinfo}}'></p></p><script src='http://cdn.bootcss.com/angular.js/1.5.6/angular.js'></script><script> var app = angular.module(’app’, []) app.directive(’onTest’, function () {return { restrict: ’A’, scope: {test: ’@data’ }, link: function (scope, element, attr) {console.log(’init’, scope.test)attr.$observe(’data’, function (val) { console.log(val)}) }} })</script>回答2:
同志,你的玩法不對哦:
首先是模板部分,既然你想監(jiān)視userInfo的變化,那用雙向綁定的方式最合適不過了,但你寫的是綁定屬性(這個(gè)不夠帥):
<p on-test data='userinfo'></p><!--這樣就可以了-->
下面是指令注冊的部分:
app.directive(’onTest’, function () { return {restrict: ’A’,scope:{ test:’=data’//雙向綁定用=},link: function(scope , element, attr) { console.log(scope.test);//high不high?拿到了哦 scope.$watch(’test’, function(newVal){console.log(newVal);//每次你在controller里修改了userInfo,這里都會打印 }, true);} };});
相關(guān)文章:
1. 關(guān)于docker下的nginx壓力測試2. docker images顯示的鏡像過多,狗眼被亮瞎了,怎么辦?3. java - 阿里的開發(fā)手冊中為什么禁用map來作為查詢的接受類?4. dockerfile - [docker build image失敗- npm install]5. nignx - docker內(nèi)nginx 80端口被占用6. html5 - 使用echarts中的圖表 一個(gè)頁面導(dǎo)入了好幾個(gè)js圖表 實(shí)現(xiàn)echarts圖表隨著瀏覽器窗口變化而變化時(shí)出現(xiàn)了問題7. 在windows下安裝docker Toolbox 啟動Docker Quickstart Terminal 失敗!8. dockerfile - 我用docker build的時(shí)候出現(xiàn)下邊問題 麻煩幫我看一下9. docker api 開發(fā)的端口怎么獲取?10. python3.x - git bash如何運(yùn)行.bat文件?
