关于在angularjs中如何访问触发事件的元素?和angularjs点击事件的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于AngularJS+JQuery:如何使动态内容在angula
关于在angularjs中如何访问触发事件的元素?和angularjs点击事件的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于AngularJS + JQuery:如何使动态内容在angularjs中工作、AngularJS JQuery:如何获得动态内容在angularjs中工作、AngularJs ng-change手动触发事件、angularjs – Dragula angle如何访问模型项目等相关知识的信息别忘了在本站进行查找喔。
本文目录一览:- 在angularjs中如何访问触发事件的元素?(angularjs点击事件)
- AngularJS + JQuery:如何使动态内容在angularjs中工作
- AngularJS JQuery:如何获得动态内容在angularjs中工作
- AngularJs ng-change手动触发事件
- angularjs – Dragula angle如何访问模型项目
在angularjs中如何访问触发事件的元素?(angularjs点击事件)
我在我的Web应用程序中同时使用了Bootstrap和AngularJS。我很难让两个人一起工作。
我有一个元素,它具有属性 data-provide="typeahead"
<input id="searchText" ng-model="searchText" type="text"placeholder="title" data-provide="typeahead" ng-change="updateTypeahead()" />
我想data-source
在用户在字段中输入时更新属性。该函数updateTypeahead
已正确触发,但是除非我使用$(''#searchText'')
,这是jQuery方式,而不是AngularJS方式,否则我无法访问触发事件的元素。
使AngularJS与旧式JS模块一起工作的最佳方法是什么。
答案1
小编典典 updateTypeahead(this)
不会将DOM元素传递给函数updateTypeahead(this)
。这里this
将参考范围。如果要访问DOM元素,请使用updateTypeahead($event)
。在回调函数中,您可以通过获取DOM元素event.target
。
请注意:ng-change函数不允许将$ event作为变量传递。
AngularJS + JQuery:如何使动态内容在angularjs中工作
我正在使用jQuery和AngularJS开发Ajax应用程序。
当我使用jQuery的html
功能更新div的内容(包含AngularJS绑定)时,AngularJS绑定不起作用。
以下是我正在尝试执行的代码:
$(document).ready(function() {
$("#refreshButton").click(function() {
$("#dynamicContent").html("<button ng-click='count = count + 1' ng-init='count=0'>Increment</button><span>count: {{count}} </span>")
});
});
</style><script src="http://docs.angularjs.org/angular-1.0.1.min.js"></script><style>.ng-invalid {
border: 1px solid red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="">
<div id='dynamicContent'>
<button ng-click="count = count + 1" ng-init="count=0">
Increment
</button>
<span>count: {{count}} </span>
</div>
<button id='refreshButton'>
Refresh
</button>
</div>
我在具有ID的div内包含动态内容#dynamicContent
,并且具有一个刷新按钮,当单击刷新时,该按钮将更新该div的内容。如果不刷新内容,增量将按预期工作,但是刷新后,AngularJS绑定将停止工作。
这在AngularJS中可能无效,但是我最初使用jQuery构建了应用程序,后来又开始使用AngularJS,因此无法将所有内容都迁移到AngularJS。非常感谢在AngularJS中实现此功能的任何帮助。
AngularJS JQuery:如何获得动态内容在angularjs中工作
当我使用jQuery的html函数更新div的内容(其中包含AngularJS绑定)时,AngularJS绑定不工作。
这是一个JSFiddle版本的我想要做的。
我有一个动态内容在一个div与ID #dynamicContent,我有一个刷新按钮,将更新此div的内容,当刷新点击。增量工作原理如果我不刷新内容,但刷新后,AngularJS绑定停止工作。
这可能不是有效的AngularJS,但我最初用jQuery构建应用程序,并开始使用AngularJS后,所以我不能迁移所有的AngularJS。任何帮助获得这工作在AngularJS非常感谢。
在你的小提琴,它会看起来像这样。
$("#dynamicContent").html( $compile( "<button ng-click='count = count + 1' ng-init='count=0'>Increment</button><span>count: {{count}} </span>" )(scope) );
显然,$ compile必须注入到你的控制器中才能工作。
阅读更多在$compile
documentation。
AngularJs ng-change手动触发事件
<input type="checkBox" value="" ng-model="filterPrivateDocCheckBox" ng-click="dl.filterPrivateDocument(filterPrivateDocCheckBox,$event)"> <input st-search="target"ng-model="dl.documentTarget" ng-change="dl.change()" /> function filterPrivateDocument(val) { if(val) this.documentTarget = 'Private'; }
当我点击checkBox时,我将值设置为文本框,但是我看到ng-change事件没有被触发.为什么?
而且当我在文本框中输入一些值时,我发现ng-change事件被触发了.
解决这个问题的任何方法?
解决方法
The ngChange expression is only evaluated when a change in the input value causes a new value to be committed to the model.
It will not be evaluated:
- if the value returned from the $parsers transformation pipeline has
not changed- if the input has continued to be invalid since the model
will stay null- if the model is changed programmatically and not by a
change to the input value
因此,当它被JavaScript(/ angular)更改时不会被触发.
您可以做的是,自己触发更改功能:
function filterPrivateDocument(val) { if(val) { this.documentTarget = 'Private'; this.change(); } }
见this jsfiddle
angularjs – Dragula angle如何访问模型项目
从文档中删除事件的说明:
el was dropped into target before a sibling element,and originally came from source
el似乎返回被拖动的HTML元素,但是我需要对它后面的实际数据项执行操作.任何提示?
<divid="manageUsers"> <divdragula='"bag"' dragula-model='usersInProject'> <div ng-repeat='user in usersInProject' ng-bind='user.email'></div> </div> <divdragula='"bag"' dragula-model='usersnotinProject'> <div ng-repeat='user in usersnotinProject' ng-bind='user.email'></div> </div> </div> $scope.$on('bag.drop-model',function (e,el,target,source) { //this returns the html element console.log(el); });
这样的事情
<div id="{{ user.id }}" ng-repeat='user in usersnotinProject' ng-bind='user.email'></div>
在控制器中,我使用id查找项目:
$scope.$on('bag.drop-model',source) { //getById is a function you implement (unless you already have it) console.log(usersnotinProject.getById(el.attr('id')).email); });
关于在angularjs中如何访问触发事件的元素?和angularjs点击事件的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于AngularJS + JQuery:如何使动态内容在angularjs中工作、AngularJS JQuery:如何获得动态内容在angularjs中工作、AngularJs ng-change手动触发事件、angularjs – Dragula angle如何访问模型项目等相关内容,可以在本站寻找。
本文标签: