我是AngularJS的新手,怀疑我没有掌握一个概念。我也在使用Twitter Bootstrap,并且加载了jQuery。
工作流程:用户单击列表中的链接,“主”部分被更新,并且链接用户单击了活动类。
基本HTML标记:
<ul class="list-holder" ng-controller="adminController">
<li><a ng-click="setMaster('client')">Clients</li>
<li><a ng-click="setMaster('employees')">Employees</li>
<li><a ng-click="setMaster('etc')>Etc...</li>
</ul>
在jQuery中执行此操作:
jQuery(".list-holder").on('click', 'a', function(event){
event.preventDefault();
jQuery(".list-holder li").removeClass('active');
jQuery(this).parent('li').addClass('active');
});
但是我无法弄清楚如何集成Angular和jQuery以完成此操作,因为我正在使用Angular从服务器获取主列表(以JSON形式)并更新页面上的列表。
如何整合呢?进入角度控制器功能后,似乎无法找到单击的元素
控制器:
function adminController($scope)
{
$scope.setMaster = function(obj)
{
// How do I get clicked element's parent li?
console.log(obj);
}
}
$event
参数
setMaster
;此处的文档)来尝试单击事件(并以此为目标),但请参见以下文档: http
function AdminController($scope) {
$scope.setMaster = function(obj, $event){
console.log($event.target);
}
}
这不是解决这个问题的角度。使用AngularJS的重点是模型操作。一个人会改变一个模型,然后让AngularJS找出渲染。
解决此问题(无需使用jQuery且 无需传递$event
参数)的AngularJS方式为:
<div ng-controller="AdminController">
<ul class="list-holder">
<li ng-repeat="section in sections" ng-class="{active : isSelected(section)}">
<a ng-click="setMaster(section)">{{section.name}}</a>
</li>
</ul>
<hr>
{{selected | json}}
</div>
控制器中的方法如下所示:
$scope.setMaster = function(section) {
$scope.selected = section;
}
$scope.isSelected = function(section) {
return $scope.selected === section;
}
这是完整的jsFiddle:http :
//jsfiddle.net/pkozlowski_opensource/WXJ3p/15/
问题内容: 我有一个带有ng-view(管理面板)的设置,可让我显示订单。我在ng- view之外有一个搜索框,可以用来修改json请求。我看到过一些访问标题等内容的帖子,但无法使它们正常工作-可能已过时。 主要应用程式内容: 管理控制器: 视图: 问题答案: 如果您要访问以外的内容,我认为更好的方法是也为外部区域创建一个控制器。然后创建服务以在控制器之间共享数据: (也可以放置在标签上-则ng-
问题内容: 我在我的Web应用程序中同时使用了Bootstrap和AngularJS。我很难让两个人一起工作。 我有一个元素,它具有属性 我想在用户在字段中输入时更新属性。该函数已正确触发,但是除非我使用,这是jQuery方式,而不是AngularJS方式,否则我无法访问触发事件的元素。 使AngularJS与旧式JS模块一起工作的最佳方法是什么。 问题答案: 不会将DOM元素传递给函数。这里将参
问题内容: 我在表行上有一个单击事件,在这一行中还有一个带有单击事件的删除按钮。当我单击删除按钮时,也会触发该行上的单击事件。 这是我的代码。 当我单击表格单元格中的删除按钮时,如何防止触发事件? 问题答案: ngClick指令(以及所有其他事件指令)创建在相同范围内可用的变量。此变量是对JS 对象的引用,可用于调用:
问题内容: 如何从ui网格单元模板进行访问?这是我的控制器代码: 在此处查看其运行情况:http : //plnkr.co/edit/WYXeQShHWKDYDs4MIZnP?p=preview 我希望单元格内容显示“ hello world”,但它们仅显示“ hello”。 问题答案: 根据http://ui-grid.info/docs/#/tutorial/305_appScope,网格具有
问题内容: 例如,请参见此处:http : //www.johnpapa.net/angularjss-controller-as-and-the-vm- variable/ 就像标题所暗示的那样,我将按照本教程 [http://tech.pro/tutorial/1473/getting-started-with- angularjs-unit-testing] 进行单元测试,事实证明一切都很好