Javascript 如何在angular js中获取自定义属性的值
我在angular js中创建了一个名为Javascript 如何在angular js中获取自定义属性的值,javascript,angularjs,Javascript,Angularjs,我在angular js中创建了一个名为test的自定义属性。当我在ng控制器关键字I.d旁边写入test属性时 然后我可以使用警报($attrs.test)从控制器访问该测试。但是,如果我在ng controller关键字旁边写入自定义属性test,我将无法访问该属性。i、 e 在这种情况下,我在警报($attrs.test) 完整代码 <html> <script src="angular.min.js"></script> <body ng-a
test
的自定义属性。当我在ng控制器关键字I.d旁边写入test
属性时
然后我可以使用警报($attrs.test)
从控制器访问该测试。但是,如果我在ng controller关键字旁边写入自定义属性test
,我将无法访问该属性。i、 e
在这种情况下,我在警报($attrs.test)
完整代码
<html>
<script src="angular.min.js"></script>
<body ng-app="myApp">
<div ng-controller="kumar" >
<button ng-click="check()" test="def">Click</button>
</div>
<script>
var app = angular.module("myApp", []);
app.directive("test", function() {
return {
//template : "<h1>Hello</h1>"
};
});
app.controller("kumar",function($scope,$attrs){
$scope.check=function(){
alert(JSON.stringify($attrs.test)); //getting undefined. I
//should get def.
}
});
</script>
</body>
</html>
点击
var-app=angular.module(“myApp”,[]);
应用指令(“测试”,函数(){
返回{
//模板:“你好”
};
});
应用控制器(“kumar”,函数($scope,$attrs){
$scope.check=函数(){
警报(JSON.stringify($attrs.test));//正在获取未定义的.I
//应该得到def。
}
});
您可以检查:
<html>
<script src="src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js""></script>
<body ng-app="myApp">
<div ng-controller="kumar" >
<button ng-click="check()" test="def">Click</button>
</div>
<script>
var app = angular.module("myApp", []);
app.directive("test", function() {
return {
//template : "<h1>Hello</h1>"
};
});
app.controller("kumar",function($scope,$attrs){
$scope.check=function(){
var testa=$scope.test;
alert(JSON.stringify(testa)); //getting undefined. I
//should get def.
}
});
</script>
</body>
</html>
点击
var-app=angular.module(“myApp”,[]);
应用指令(“测试”,函数(){
返回{
//模板:“你好”
};
});
应用控制器(“kumar”,函数($scope,$attrs){
$scope.check=函数(){
var testa=$scope.test;
警报(JSON.stringify(testa));//未定义。I
//应该得到def。
}
});
更新指令范围并添加限制。为了更好地理解,请参考如果在ng click中传递$event,即ng click=“check($event)”并可以从$event.target中获取属性,则可以在单击时获取元素
检查小提琴:
JS
app.controller('myCtrl', function($scope) {
$scope.clickMe = function(evt) {
console.log(evt.target.getAttribute('test'))
}
});
HTML
<div ng-controller="myCtrl">
<div ng-click="clickMe($event)" test="abc">Click on Me</div>
</div>
点击我
该属性仅可由写入ng控制器的div中的test directivebutton的控制器访问。所以我认为button在那个控制器下button在那个控制器中,但指令的属性不是。要允许父级访问此文件,您需要授予父级访问其子级范围的权限。在ScottHunter网站上读到这篇文章,看看我的答案
<div ng-controller="myCtrl">
<div ng-click="clickMe($event)" test="abc">Click on Me</div>
</div>