angularjs – 如何从它的指令访问转换的范围
发布时间:2020-12-17 16:55:49 所属栏目:安全 来源:网络整理
导读:我有一个指令,其中包含一个带有表单的转换.我想从指令访问表单,但它是未定义的. 如何访问transclude的范围? 我刚开始有角度,所以也许我想做的不是最佳做法? 我做了一个简单的演示来说明我正在尝试做什么. https://plnkr.co/edit/wzq5oFTuoAqVJMF2RUy2?p=pr
我有一个指令,其中包含一个带有表单的转换.我想从指令访问表单,但它是未定义的.
如何访问transclude的范围? 我刚开始有角度,所以也许我想做的不是最佳做法? 我做了一个简单的演示来说明我正在尝试做什么. https://plnkr.co/edit/wzq5oFTuoAqVJMF2RUy2?p=preview <my-directive> <form role="form" name="myForm" ng-submit="submit()"> <input type="text" id="myInput" ng-model="myInput" /> <input type="submit" value="Submit" /> </form> </my-directive> var myApp = angular.module('myApp',[]); myApp.controller('myController',function myController($scope){ }); myApp.directive('myDirective',function(){ return { template: '<div ng-transclude></div>',restrict: 'E',transclude: true,replace: true,link: function (scope,element,attrs) { scope.submit = function(){ debugger; var myForm = scope.myForm; //myForm is undefined } } } }); 解决方法
您应该使用link参数而不是link函数中的scope参数来访问dom元素.
var myForm = element[0].querySelector('form') 要么 var myForm = element[0].children.myForm 将为您提供表单元素的句柄.我推荐前者. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |