angular.js - angularJS 用directive的时候,放指令的地方传递的数据,怎么在template中用ng-model取到
仅有的幸福
仅有的幸福 2017-05-15 17:03:47
0
3
517

大家都没有认真看题,问题仍然没有解决( ´╥ω╥`)

我想定制一个单选控件,备选项根据传入指令的参数而定,我这里是由select-item-name指定的等于"review", 问题是在radio这里,ng-model的值不能解析成review,始终解析为参数名selectItemName

问题的重点在于,指令属性中传的值,和模板中的ng-model绑定的值的交互,不是跟父controller中的值,这里不涉及父作用域和父controller

directive代码:

angular.module('starter') .directive('mySelect',['$rootScope','$window','$timeout', function($rootScope, $window, $timeout){ return { restrict:'A', replace:false, scope: { selectItemName:'=' }, templateUrl: 'templates/select-directive.html', link:function(scope, element, attrs){ scope.selectItems = ['aa','bb']; scope.$watch(attrs.selectItemName, function(newVal, oldVal){ console.log('newVal:'+newVal); if(newVal==oldVal){ return; } }); } } }]);
仅有的幸福
仅有的幸福

모든 응답 (3)
为情所困

怎么能用@,不是应该换=么?

补充:

首先,改成=是对的,这里面你要了解的是=@的区别:

文档地址:$compile

其次,你在指令中的$watch部分,我有异议,如果关心selectItemName的变化,应该这么写:

scope.$watch('selectItemName', function(newVal, oldVal){ console.log('newVal:'+newVal); if(newVal==oldVal){ return; } });

关于watchExpression的更多内容,可以看:

文档地址:scope

    左手右手慢动作

    我不太看得懂你的问题是什么,不过我把你的代码引入试了一遍,把=改回@后,其实已经取到了。

      大家讲道理

      http://raowensheng.com/2014/05/08/angularjs%E7%9A%84%E8%87%AA%E5%AE%9A%E4%B9%89directive%E6%8C%87%E4%BB%A4%E7%9A%84%E7%BB%91%E5%AE%9A%E7%AD%96%E7%95%A5scope%E3%80%81%E3%80%81/ 题主看看这篇文章。讲的很清楚

        최신 다운로드
        더>
        웹 효과
        웹사이트 소스 코드
        웹사이트 자료
        프론트엔드 템플릿
        회사 소개 부인 성명 Sitemap
        PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!