GVKun编程网logo

AngularJS:ng-click是“一种好的做法”吗?为什么AngularJS中没有ng- {event}?(angular ng-init)

22

在本文中,我们将详细介绍AngularJS:ng-click是“一种好的做法”吗?为什么AngularJS中没有ng-{event}?的各个方面,并为您提供关于angularng-init的相关解答,

在本文中,我们将详细介绍AngularJS:ng-click是“一种好的做法”吗?为什么AngularJS中没有ng- {event}?的各个方面,并为您提供关于angular ng-init的相关解答,同时,我们也将为您带来关于angularjs – Angular 2 app中的socket.io-client、angularjs – Angular Directive ng-click Not Working、angularjs – Angular JS:使用Angular有哪些问题/陷阱?、angularjs – Angular-Cli生成的文件夹中没有NgModule的有用知识。

本文目录一览:

AngularJS:ng-click是“一种好的做法”吗?为什么AngularJS中没有ng- {event}?(angular ng-init)

AngularJS:ng-click是“一种好的做法”吗?为什么AngularJS中没有ng- {event}?(angular ng-init)

我才刚刚开始学习AngularJS,并尝试了一些AngularJS的概念。如果有人可以向我解释一些观点,那就太好了。

  1. 我知道从ng-click技术上讲,这与onclick不同,但是两者都放在标记中。我以为那是“坏习惯”?如果大多数人说这是“不好的”,为什么这是AngularJS的核心概念之一?我认为最好从JavaScript中选择DOM元素,而不要在标记中放置逻辑。

  2. 如果ng-click是对AngularJS中的click事件做出反应的正确方法,我应该如何处理其他DOM事件?我看到还有其他类似的指令ng-mouseover,但并非所有DOM事件都具有等效的AngularJS。我将如何处理AngularJS中的’drop’事件(因此采用AngularJS方式-而不是常规方式)?要清楚:我想将文件拖到我的webapp中。

非常感谢Pipo

答案1

小编典典

如果大多数人说这是“不好的”,为什么这是AngularJS的核心概念之一?

好吧,那些真正喜欢UnobtrusiveJavaScript的人可能会说这很糟糕。Angularian(以及那些具有弹性背景的人)在更具说明性的方法中看到了价值。


Angular是基于这样的信念构建的:在构建UI和将软件组件连接在一起时,声明性代码比命令性要好。通过声明性地描述UI应随应用程序状态的变化而变化,您将摆脱底层DOM操作的困扰。任务-
概述文档

另请参见Bootstrap,Angular.js和Ember.js中使用的数据属性选项是否与UnobtrusiveJavascript原则冲突?

我应该如何处理其他DOM事件?

编写您自己的指令以侦听它们(或找到其他人已经编写的指令)。Angular使您能够编写自己的指令来扩展浏览器的功能。

更新 :在下面的评论中,蒂姆·斯图尔特提到了AngularUI的ui-event,它使您可以将回调绑定到Angular本身不支持的任何事件。

angularjs – Angular 2 app中的socket.io-client

angularjs – Angular 2 app中的socket.io-client

参见英文答案 > How to import socket.io-client in a angular 2 application?4个
我正在尝试在我的angular 2应用程序中使用socket.io客户端并安装它和打字

我只是从’socket.io-client’导入;

但不知怎的,我从中得到了很多错误:

如果我从cdn加载脚本并将init代码放在< script>中,我可以在index.html中使用lib.标签,但我不能在我的实际角度2应用程序中使用它.

我在这做错了什么?

这是我的样板:https://github.com/mgechev/angular2-seed

socket.io的例子似乎已经过时了,这就是我避免它们的原因.

这就是我正在做的并且已经得到了这些错误:

import * as io from 'socket.io-client';
[...]
var socket = io('127.0.0.1');

所以这个问题似乎与SystemJS有关.
这https://github.com/mgechev/angular2-seed/wiki/Add-external-dependency建议我可以添加socket.io-client,它应该自动添加所有依赖项,但事实并非如此.

我已经尝试了完整的例子,但这也无济于事.

我在我的角度2应用程序中使用socket.io客户端,并没有任何问题.首先,您不应该在index.hml中将script标记放入socket.io-client.其次,你需要在system.js配置中使用这些行:
{
  packages: {
      "socket.io-client": {"defaultExtension": "js"}
  },map: {
    "socket.io-client": "node_modules/socket.io-client/socket.io.js"
  }
}

然后你只需使用它:

import * as io from "socket.io-client";
io.connect(url,{ /* ... */ });

angularjs – Angular Directive ng-click Not Working

angularjs – Angular Directive ng-click Not Working

Plunker

我有一个外部控制器,在其视图内包含一个指令.该指令获取一个过程点列表并生成链接,您可以在其中选择每个过程点.它在链接函数中正确设置HTML,但链接的ng-click操作不起作用.

有任何想法吗?

总结

以上是小编为你收集整理的angularjs – Angular Directive ng-click Not Working全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

angularjs – Angular JS:使用Angular有哪些问题/陷阱?

angularjs – Angular JS:使用Angular有哪些问题/陷阱?

当我开始使用Angular构建真实且更复杂的应用程序时,我可能会遇到哪些陷阱/问题/痛苦?
我正在开展一项新工作,并建议将Angular(和Bootstrap)作为构建我们所有网络应用程序的基础.在使用backbone.js将近1.5年之后,我知道我不想使用它…我们有一个Node MongoDB后端,并且在任何客户端堆栈中都没有真正的投资.一个独特之处在于我们有一些大数据 – 一个集合可以达到10个大小的演出,拥有数亿个记录……我已经阅读并使用Angular过去两周左右而且还没有真的发现任何不好的事情.

解决方法

真的没有陷阱:)

关于一个可能不那么狂热的解释:AngularJS(据我所知)比骨干更加自以为是 – 大多数流程都很容易执行(显示数据,处理交互)但是遵循更严格的模式这样做.据说它使得angularJS比骨干更难弯曲到你的特定标准,但我发现它并非如此.此外,该系统的一些缺点正在迅速消失,因为它正在快速发展.

以防万一:路由系统是angularJS的一个较小的方面,因为它通常不是很灵活(没有路由继承,没有状态机)…我开始使用变通方法制作应用程序,结果证明非常干净,然而,角度ui的人们提出了solid solution,类似的解决方案必然会出现在角度本身.

动画指令也是一个缺点(动画对象的外观和消失是棘手的,因为它们需要存在直到动画结束,并且必须进行管理)并且还有解决方法,但核心动画系统是在角度1.1.4,here于4月4日推出,所以你看,它正在迅速发展:)

关于学习曲线:它有一些,但没有任何有你经验的人无法在很短的时间内处理. This series of video tutorials是我所知道的最好的资源,作为理解大多数事情要点的简单方法(文档足够好并且变得更好,但在某些地方缺乏适用的例子,它会真正帮助 – 或者缺乏,它们可能会更好到现在为止 – “初学者教程”也是可怕的,我个人讨厌长时间运行,一步一步的教程)

希望能帮助到你!

angularjs – Angular-Cli生成的文件夹中没有NgModule

angularjs – Angular-Cli生成的文件夹中没有NgModule

我是angular.js的新手.我已经学习了angular.js的基本概念并理解了项目结构.

但是当我使用angular-cli生成一个基本项目时,我发现在项目中根src文件夹中没有NgModule.但是根据角度主页中的文档,根是NgModule.所以这是我的问题,它们之间有什么区别.为什么angular-cli使用组件作为根?谢谢.

解决方法

我认为angular-cli还没有更新. Angular 2仍在快速变化.

但是,您可以自己轻松创建它:

$ng new yourproject

然后在你的项目/ src /文件夹中导航,用这种方式替换main.ts:

import { platformbrowserDynamic } from '@angular/platform-browser-dynamic';

import { AppModule } from './app/app.module';

platformbrowserDynamic().bootstrapModule(AppModule);

现在进入yourproject / src / app文件夹并创建app.module.ts:

import { NgModule }      from '@angular/core';
import { browserModule } from '@angular/platform-browser';
import { MdButtonModule } from '@angular2-material/button';

import { AppComponent }  from './app.component';

@NgModule({
  imports: [ browserModule ],declarations: [ AppComponent ],bootstrap: [ AppComponent ]
})
export class AppModule { }

您可能还需要在project / package.json中添加/更新一些依赖项.这是我的:

"dependencies": {
    "@angular/common": "2.0.0-rc.5","@angular/compiler": "2.0.0-rc.5","@angular/core": "2.0.0-rc.5","@angular/forms": "0.3.0","@angular/http": "2.0.0-rc.5","@angular/platform-browser": "2.0.0-rc.5","@angular/platform-browser-dynamic": "2.0.0-rc.5","@angular/router": "3.0.0-rc.1","@angular/router-deprecated": "2.0.0-rc.2","@angular/upgrade": "2.0.0-rc.5","bootstrap": "^3.3.6","core-js": "^2.4.0","es6-shim": "0.35.1","reflect-Metadata": "^0.1.3","rxjs": "5.0.0-beta.6","systemjs": "0.19.27","zone.js": "^0.6.12"
  },"devDependencies": {
    "angular-cli": "1.0.0-beta.10","codelyzer": "0.0.20","ember-cli-inject-live-reload": "1.4.0","jasmine-core": "2.4.1","jasmine-spec-reporter": "2.5.0","karma": "0.13.22","karma-chrome-launcher": "0.2.3","karma-jasmine": "0.3.8","protractor": "3.3.0","ts-node": "0.5.5","tslint": "^3.7.4","typescript": "^1.8.10","typings": "1.3.1"
  }

今天关于AngularJS:ng-click是“一种好的做法”吗?为什么AngularJS中没有ng- {event}?angular ng-init的讲解已经结束,谢谢您的阅读,如果想了解更多关于angularjs – Angular 2 app中的socket.io-client、angularjs – Angular Directive ng-click Not Working、angularjs – Angular JS:使用Angular有哪些问题/陷阱?、angularjs – Angular-Cli生成的文件夹中没有NgModule的相关知识,请在本站搜索。

本文标签: