本文将带您了解关于在angularjs的ng-click函数中获取元素的属性的新内容,同时我们还将为您解释angularng-click的相关知识,另外,我们还将为您提供关于angularjs–Ang
本文将带您了解关于在angularjs的ng-click函数中获取元素的属性的新内容,同时我们还将为您解释angular ng-click的相关知识,另外,我们还将为您提供关于angularjs – Angular CLI:无法读取null的属性’config’、angularjs – Angular JS – 将ng-click $index值传递给控制器函数,然后返回另一个视图、angularjs – ngClick在Angular 1.5.5组件中未触发的事件、angularjs – 使用Angular,我如何将click事件绑定到元素上,并单击后,向下滑动一个兄弟元素?的实用信息。
本文目录一览:- 在angularjs的ng-click函数中获取元素的属性(angular ng-click)
- angularjs – Angular CLI:无法读取null的属性’config’
- angularjs – Angular JS – 将ng-click $index值传递给控制器函数,然后返回另一个视图
- angularjs – ngClick在Angular 1.5.5组件中未触发的事件
- angularjs – 使用Angular,我如何将click事件绑定到元素上,并单击后,向下滑动一个兄弟元素?
在angularjs的ng-click函数中获取元素的属性(angular ng-click)
我有一个如下所示的span标签,单击该标签会在控制器中调用一个函数。
HTML
<divng-repeat="event in events"> <div> <spandata={{event.id}} ng-click="deleteEvent()"> </span> </div></div>
控制者
$scope.deleteEvent=function(){ console.log(this);}
我需要在控制器功能的data属性中获取值。我尝试使用此关键字和$ event; 没人工作。
请帮忙。
答案1
小编典典尝试将其直接传递给ng-click函数:
<div> <spandata="{{event.id}}" ng-click="deleteEvent(event.id)"></span></div>
然后它应该在您的处理程序中可用:
$scope.deleteEvent=function(idPassedFromNgClick){ console.log(idPassedFromNgClick);}
这是一个例子
angularjs – Angular CLI:无法读取null的属性’config’
Cannot read property ‘config’ of null TypeError: Cannot read property
‘config’ of null
at Class.run (/Users/hyadav/Documents/projects/web-app/node_modules/@angular/cli/tasks/build.js:16:56)
at Class.run (/Users/hyadav/Documents/projects/web-app/node_modules/@angular/cli/commands/build.js:143:26)
at Class. (/Users/hyadav/Documents/projects/web-app/node_modules/@angular/cli/ember-cli/lib/models/command.js:134:17)
at process._tickCallback (internal/process/next_tick.js:109:7)
的package.json
"scripts": { "ng": "ng","start": "ng serve","build": "ng build","test": "ng test","lint": "ng lint","e2e": "ng e2e" },"private": true,"dependencies": { "@angular/animations": "^4.0.3","@angular/cli": "^1.0.1","@angular/common": "^4.0.3","@angular/compiler": "^4.0.3","@angular/compiler-cli": "^4.0.3","@angular/core": "^4.0.3","@angular/forms": "^4.0.3","@angular/http": "^4.0.3","@angular/material": "^2.0.0-beta.3","@angular/platform-browser": "^4.0.3","@angular/platform-browser-dynamic": "^4.0.3","@angular/platform-server": "^4.0.3","@angular/router": "^4.0.3","core-js": "^2.4.1","hammerjs": "^2.0.8","rxjs": "^5.2.0","typescript": "^2.2.2","zone.js": "^0.8.4" },"devDependencies": { "@angular/cli": "^1.0.1","@angular/compiler-cli": "^2.4.0","@types/jasmine": "2.5.38","@types/node": "~6.0.60","codelyzer": "~2.0.0","jasmine-core": "~2.5.2","jasmine-spec-reporter": "~3.2.0","karma": "~1.4.1","karma-chrome-launcher": "~2.0.0","karma-cli": "~1.0.1","karma-coverage-istanbul-reporter": "^0.2.0","karma-jasmine": "~1.1.0","karma-jasmine-html-reporter": "^0.2.2","protractor": "~5.1.0","ts-node": "~2.0.0","tslint": "~4.4.2","typescript": "~2.2.2" }
创建一个名为.angular-cli.json的新文件并插入:
{ "$schema": "./node_modules/@angular/cli/lib/config/schema.json","project": { "name": "PROJECT_NAME" },"apps": [ { "root": "src","outDir": "dist","assets": [ "assets","favicon.ico" ],"index": "index.html","main": "main.ts","polyfills": "polyfills.ts","test": "test.ts","tsconfig": "tsconfig.app.json","testTsconfig": "tsconfig.spec.json","prefix": "app","styles": [ "styles.css" ],"scripts": [],"environmentSource": "environments/environment.ts","environments": { "dev": "environments/environment.ts","prod": "environments/environment.prod.ts" } } ],"e2e": { "protractor": { "config": "./protractor.conf.js" } },"lint": [ { "project": "src/tsconfig.app.json" },{ "project": "src/tsconfig.spec.json" },{ "project": "e2e/tsconfig.e2e.json" } ],"test": { "karma": { "config": "./karma.conf.js" } },"defaults": { "styleExt": "css","component": {} } }
如果从angular-cli创建新项目,您还可以找到此json的副本.
angularjs – Angular JS – 将ng-click $index值传递给控制器函数,然后返回另一个视图
我的观点(months.html)有一个所有月份的列表,选中后,它会将值传递给控制器.
<ion-list ng-repeat="time in times.months" ng-click="getMonthId($index)"> <ion-itemhref="#/dmtimes">{{ time.monthId }} - {{ time.MonthName }</ion-item> </ion-list>
视图输出显示:
1 - Jan 2 - Feb 3 - Mar etc
我的控制器有以下提取代码:
.controller('dailyMeetingTimesCtrl',function($scope,MeetingNames,$ionicLoading,$firebase,$firebaseArray) { $scope.getMonthId = function (monthId) { alert("you selected: " + monthId); // this works fine. $scope.myChoice = monthId; // ReferenceError: myChoice is not defined console.log(myChoice); } })
在我的第二个视图(displayMeetingTimes.html)中,我想显示所选月份的会议详细信息,时间等.代码如下:
<ion-view title="Daily Meeting Times"> <ion-content ng-controller="dailyMeetingTimesCtrl"overflow-scroll="true" padding="true"> <ion-list> <ion-item ng-repeat="time in times.months(myChoice).days"> <span>{{myChoice}}</span> Meeting Name: {{ time.meetingName }}<br /> Star Time: {{ time.startTime }}<br /> Finish Time: {{ time.finishTime }}<br /> </ion-item> </ion-list> </ion-content> </ion-view>
当我运行应用程序时,’myChoice’的值没有传递到第二个视图,因此错误“ReferenceError:myChoice未定义”
请告诉我哪里出错了?谢谢.
解决方法
<ion-list ng-repeat="time in times.months track by $index" ng-click="getMonthId($index)"> <ion-itemhref="#/dmtimes">{{ time.monthId }} - {{ time.MonthName } </ion-item> </ion-list>
其次,你得到ReferenceError的原因:myChoice没有被定义,因为你从未初始化一个名为myChoice的变量.但是你有一个名为$scope.myChoice的变量.
因此,您应该执行以下操作以在控制台中显示变量:
console.log($scope.myChoice);
angularjs – ngClick在Angular 1.5.5组件中未触发的事件
'use strict'; angular.module('core').component('foo',{ bindings: { items: '<',},controller: function() { function fire() { console.log('hello'); } },template: "<button type='button' ng-click='$ctrl.fire();'>Test</button>" });
编辑:为问题添加了更多清晰度
解决方法
this.fire = fire;
angularjs – 使用Angular,我如何将click事件绑定到元素上,并单击后,向下滑动一个兄弟元素?
我想将一个点击事件绑定到一个元素,然后点击,将一个兄弟元素向下滑动.
这就是jQuery的样子:
$('element').click(function() { $(this).siblings('element').slidetoggle(); });
使用角度我在我的标记中添加了一个带有功能的ng-click属性:
<div ng-click="events.displaySibling()"></div>
这就是我的控制器的样子:
app.controller('myController',['$scope',function($scope) { $scope.events = {}; $scope.events.displaySibling = function() { console.log('clicked'); } }]);
到目前为止,这是按预期工作,但我不知道如何完成幻灯片.任何帮助非常感谢.
更新
我已经用指令取代了我所做的一切.
我的标记现在看起来像这样:
<div></div>
我已经删除了我在控制器中的内容,并创建了一个新的指令.
app.directive('myevent',function() { return { restrict: 'C',link: function(scope,element,attrs) { element.bind('click',function($event) { element.parent().children('ul').slidetoggle(); }); } } });
但是,我仍然无法使幻灯片切换工作.我不相信Slidetoggle()是由Angular支持的.有什么建议么?
也就是说,有你的html这样的东西:
<div ng-click="visible = !visible"></div> <div ng-show="visible">I am the sibling!</div>
然后,您可以使用ng-animate中的构建来制作兄弟幻灯片 – yearofmoo有一个非常好的概述如何$动画作品.
这个例子很简单,你可以把显示逻辑放在html中,但是我会鼓励你把它放在控制器里,就像这样:
<div ng-click="toggleSibling()"></div> <div ng-show="visible"></div>
控制器:
app.controller('SiblingExample',function($scope){ $scope.visible = false; $scope.toggleSibling = function(){ $scope.visible = !$scope.visible; } });
这种组件也是一个指令的主要候选者,它将整齐地整理出来.
今天关于在angularjs的ng-click函数中获取元素的属性和angular ng-click的分享就到这里,希望大家有所收获,若想了解更多关于angularjs – Angular CLI:无法读取null的属性’config’、angularjs – Angular JS – 将ng-click $index值传递给控制器函数,然后返回另一个视图、angularjs – ngClick在Angular 1.5.5组件中未触发的事件、angularjs – 使用Angular,我如何将click事件绑定到元素上,并单击后,向下滑动一个兄弟元素?等相关知识,可以在本站进行查询。
本文标签: