Angular2学习笔记.3、通过模板调用Controller事件实现用户输入和显示,UserInput

从任意文件读取到RCE:一次完整的Web安全漏洞链实战剖析 在Web安全领域,路径遍历(Path Traversal)和命令注入(Command Injection)是两类基础但危害巨大的安全漏洞。路径遍历漏洞的根源在于应用程序对用户输入的文件路径参数未做严格校验,攻击者通过构造特殊序列(如../)可越权读取服务器上的敏感文件,如系统配置文件或应用程序源码。命令注入则发生在应用程序将未经验证的用户输入拼接到系统命令中执行时,攻击者可通过注入分隔符(如;、&&)执行任意操作系统命令,直接获取服务器控制权。这两类漏洞的技术价值在于,它们往往能形成致命的攻击链:通过任意文 阅读详情

通过模板调用Controller事件实现用户输入和显示

本篇的内容会比较少,但是遵循着官方教程的步骤,还是单独发出来吧。这个工程实现了将用户在<input>中的输入传入到Controller的相应事件,并把它在也变其他地方显示出来。
参考官方文档

工程结构

关于对工程结构的相关约定在前两篇笔记已有详细约定,以后也不再赘述。

/  
|-package.json  
|-index.html  
|-node_modules/  
  |-libraries  
  |-...  
|-UserInput/
  |-index.html
  |-app/
    |-main.js

为了精简,这个工程没有使用之前介绍的模板分离和Model注入,仅仅对所要涉及的内容进行展示,以后也是如此。
工程示例

正文

Angular中的用户输入依赖DOM event(事件)驱动。你可以使用原生事件,例如click,mouseover和keyup。Angular使用一种特殊的syntax(语法)来对DOM元素注册事件。
事件语法开始于被圆括号包裹的事件名称,一个控制器的函数assign(分配)给这个事件名称。

<input #myname (keyup)="foo">
<p>{{myname.value}}</p>

#myname在模板中创建了一个局部变量,我们可以在下面的<p>中引用这个变量。当或可以keyup事件时,(keyup)通知Angular去trigger(触发)更新。{{myname.value}}将<p>的text node(节点)和输入值绑定。当你修改<input>中的数据时,它会同步的显示在下面的<p>中。
此时(2016-2-20),官方文档中使用的是(keyup)而不是(keyup)="foo",这不能正常运行。
(keyup)可以改为(mouseover)或其他事件,如果为(mouseover),那么Angular会在鼠标经过时更新内容,而不是在按键抬起时。
foo在这里是无意义的,但是不能为空。

构建工程

下面实现这次的UserInput工程,这个工程会首先显示一个列表,接着下面有一个<input>和一个<button>,当输入内容后,点击按钮会将输入的内容插入到上方列表。也可以在输入内容后按回车键,同样会将内容插入到列表,还会将输入框清空。
建立/UserInput/index.html:

<html>
  <head>
    <title>User Input</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- 1. Load libraries -->
    <!-- IE required polyfill -->
    <script src="/node_modules/es6-shim/es6-shim.min.js"></script>

    <script src="/node_modules/angular2/bundles/angular2-polyfills.js"></script>
    <script src="/node_modules/rxjs/bundles/Rx.umd.js"></script>
    <script src="/node_modules/angular2/bundles/angular2-all.umd.js"></script>

    <!-- 2. Load our 'modules' -->
    <script src='/UserInput/app/main.js'></script>

  </head>

  <!-- 3. Display the application -->
  <body>
    <todo-list>Loading...</todo-list>
  </body>

</html>

建立/UserInput/app/main.js:

(function(app){

    app.UserInputComponent = 
    ng.core.Component({
        selector:'todo-list',
        template:'<ul>' +
      '<li *ngFor="#todo of todos">' +
      '{{ todo }}' +
      '</li>' +
      '</ul>' +
      '<input #textbox (keyup)="doneTyping($event)">' +
      '<button (click)="addTodo(textbox.value)">Add Todo</button>'
    })
    .Class({
        constructor:function(){ this.todos = ["Eat Breakfast", "Walk Dog", "Breathe"]; this.addTodo = function(todo) { this.todos.push(todo); }; this.doneTyping = function($event) { if($event.which === 13) { this.addTodo($event.target.value); $event.target.value = null; } } }
    });
})(window.app || (window.app = {}));

(function(app){
    document.addEventListener('DOMContentLoaded',function(){
        ng.platform.browser.bootstrap(app.UserInputComponent);
    });
})(window.app || (window.app = {}));

在/下运行”npm start”。

angular学习(三)—— Controller 转载请写明来源地址:http://blog.csdn.net/lastsweetop/article/details/51190079 Controller介绍 在angular中,controller由javascript的构造函数定义,主要用于增强angular的scope。当controller通过ng-controller directive与DOM关联,angular将用指定的cont 阅读详情

相关推荐

KEGG两类报错--①No gene can be mapped--②URL ‘https://rest.kegg.jp/link/hsa/pathway‘…

版本问题,重新安装一下clusterProfiler包。网络问题,可以等待之后再试一下(试过不是)(以上可以排除基因不存在的错误因素)

weixin_57699783的博客 2万+

Java安全编程实战:从输入验证到密码存储的防御性编程指南

在软件开发中,安全编程是构建可靠系统的基石,其核心在于理解并应用数据验证与防护的基本原理。从概念上讲,安全编程遵循“所有外部输入都不可信”的第一原则,这要求开发者必须对用户输入进行严格验证。其技术原理主要围绕白名单验证策略,即只允许符合预期格式的数据通过,这比试图拦截所有恶意模式的黑名单方式更为有效。在工程实践中,这一原理通过正则表达式和验证框架(如Jakarta Bean Validation)实现,能有效防御SQL注入和跨站脚本攻击等常见漏洞。例如,在处理用户注册信息时,使用注解对用户名长度、字符集进行

cihongmo6452的博客 319

Pinocchio 结合 CasADi 进行 IK 逆运动学及 Mujoco 仿真

摘要:本视频演示了如何利用Pinocchio和CasADi实现机械臂逆运动学(IK)求解,并在Mujoco中进行仿真。通过构建优化问题(最小化位姿误差),结合IPOPT求解器对机械臂关节角度进行优化。代码支持导入URDF/MJCF模型,并以so100机械臂为例,实现了末端执行器位置跟踪的仿真测试。关键步骤包括:建立平移/旋转误差函数、设置约束条件、调用CasADi求解,最终在Mujoco中实时更新关节状态完成运动控制。

darcsdn 1002

MVC中点击input按钮去调用指定的Controller下的Action动作方法

今天分享的案例,也是困扰我一下午,但一大早起来就找到了解决方案。 在后台管理中,比如删除某一个指定的用户时,会弹出一个对话框,点击确认按钮后,才删除当前用户. 后台已写好了删除操作的Action动作,需要在删除点击确认时调用即可。 我这边是用的模板, Demo: <div class="tip"> <div class="tiptop"><span>提示信息</span><a></a></div> <div clas

qq_34550459的博客 5640

matlab物元可拓模型程序,熵权可拓物元模型

1 概述物元分析方法是中国学者蔡文于20世纪80年代提出的用于解决矛盾问题的技术方法,是研究物元及其变化规律,解决现实世界中不相容问题的有效方法,可应用于生态环境,水资源承载力,农用地分级和土地生态水平等综合评价研究中.本文主要介绍了熵权可拓物元模型的相关概念与该模型的建立过程.2 概念2.1 物元物元分析法的主要思想是把事物用"事物,特征,量值"(分别用N,C,V表示)3个要素以有序三元组的形式...

weixin_33823399的博客 4110

阿里开源最强数字人工具 EchoMimicV2,本地部署(一)

EchoMimicV2是阿里推出的半身人体AI数字人项目,基于参考图片、音频剪辑和手部姿势序列生成高质量动画视频,确保音频内容与半身动作的一致性。现在本地部署,安装体验一下。

缘分天空的专栏 4614

Angular快速入门2 ---控制器(controller)

Angular入门进阶版 控制器(controller)

songchuncao的博客 717

深入解析Android Qcom Camera HAL3架构与Camx线程模块

本文深入解析了Android Qcom Camera HAL3架构与Camx线程模块的核心原理。文章以高通芯片平台为例,剖析了从按下快门到生成照片的完整Camera流程分析,重点阐述了Camx框架中线程池、消息队列及Fence同步机制如何协同工作,以实现高效、稳定的多线程并发图像处理,为相机性能优化提供理论基础。

weixin_29184075的博客 221

AngularJS实现存入文本,搜索文本,敏感字符

html> html lang="en"> head> meta charset="UTF-8"> title>实现存入,搜索,敏感字符title> style type="text/css"> .text01{ width: 500px; height:300px; border: 1

ztz的博客 474

科研绘图(二):R 语言实现小鼠脑图谱 3D 渲染,附完整代码与数据获取指南

在生物医学科研中,脑区的 3D 可视化是呈现实验结果、解析脑结构功能的重要手段。R 语言凭借rgl和Rvcg等工具包,可高效实现小鼠全脑及特定脑区(如 CA1 区)的立体渲染,且代码可复用性强。本文将从环境搭建、数据准备、代码实现到结果导出,手把手带你完成小鼠脑图谱 3D 绘图,小白也能快速上手!

good_rrrrr的博客 2023

【TC3xx芯片】TC3xx DMA模块详解

TC3xx DMA模块详解

qq_36056498的博客 5917

angular学习(二):Controller定义总结

上文中总结完了ng-view的应用,将运维后台分开界面到2个,进行到 逻辑Controller处理中,本文将总结一下在项目中Controller都用到了哪些知识:   $scope:作用域对象,只是代表本Controller对象,本作用域的任何对象都用$scope来声明。 $rootScope:代表整个页面作用域,可以在任意子$scope之间传递全局对象     $http:用来发送ht

zhang6622056的专栏 3741

基于英特尔 RealSense D455 相机实现裂缝尺寸以及深度测量

D455 相机可用于对这些零部件进行高精度的表面检测,快速准确地测量裂缝的尺寸和深度,实现自动化的质量控制和缺陷筛查,提高生产效率和产品质量。D455 相机能够对焊缝表面进行细致扫描,测量焊缝的宽度、深度以及焊缝表面的不规则程度等参数,帮助检测焊缝是否存在缺陷,如未焊透、焊瘤等,为焊接质量的评估和改进提供数据支持。:RGB 传感器采用全局快门,并且其视场与深度视场相匹配,能够提供更出色的 RGB 图像质量,以及深度图像和 RGB 图像之间的更好对应性,从而可提高扫描质量。可以看出宽度和高度都是十分准确的。

qq_53545309的博客 1715

Spring Boot应用安全加固实战:CSRF与XSS防护在Stirling-PDF中的落地

在Web应用开发中,跨站请求伪造(CSRF)和跨站脚本攻击(XSS)是两类常见且危害巨大的安全漏洞。CSRF通过伪造用户身份执行非授权操作,而XSS则通过向页面注入恶意脚本窃取数据或控制用户会话。其技术原理分别利用了浏览器对Cookie的自动携带机制和Web应用对用户输入的不当处理。防护这些漏洞对于保障应用数据完整性与用户隐私至关重要,尤其在处理敏感文件(如PDF)的应用场景中。本文以Spring Boot框架为基础,结合OWASP Java Encoder等工具,详细阐述了如何通过配置Spring Sec

weixin_34384681的博客 396

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

前端开发者转型Java全栈:高效学习路径与AI工程化实践

面向对象编程(OOP)是一种以对象为核心,通过封装、继承和多态三大特性来组织代码的编程范式,它模拟现实世界,将数据和行为封装在对象中,从而提升代码的可重用性、可维护性和可扩展性。其核心原理在于通过类定义对象的蓝图,通过实例化创建具体对象,并通过消息传递实现对象间的交互。这一范式在构建复杂、模块化的企业级应用和系统时展现出巨大技术价值,尤其在需要高内聚、低耦合架构的后端服务开发中不可或缺。随着AI工程化和全栈开发的兴起,Java作为企业级应用的主流语言,其严谨的OOP体系与强大的Spring Boot生态,成

weixin_34056162的博客 340

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

angular 之 控制器 controller详解

介绍 controller 之前首先介绍下scope和scope 和 rootscope 的区别scope 和 $rootscope不管rootscope 还是 scope ,都是html 和 controller 之间的桥梁,数据绑定都是通过 他们来绑定的 简单来说,scope 相当于局部变量,rootscope 相当于全局变量,意思就是scope只针对单个的控制器,rootscope

青梅煮酒论英雄的博客 3707

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

angular controller之间通信

前言: 最近修改以前一个 angularJs 写的前端的一个小功能。很久没碰过这东西,我也没精力做全栈。这个功能大概是 一个 页面controller A 的事件触发之后,要通知另一个 页面 controller b清空页面数据。想了想,查了查,记录一下。 处理方式: 1. controller A 中 通过 $rootScope 添加 广播事件 $scope.test = ...

H_Rhui的博客 2340

Angular 控制器(Controllers)

什么是控制器 在angularJS中,controller是一个javascript函数/类,用于操作作用域中,各个对象的初始状态以及相应的行为。 在HTML中,绑定ng-controller的那个DOM节点内的所有子标签,将会是当前controller的作用域。在大型项目中,如果HTML DOM 中有多个作用域,这时你就需要知道你使用的 scope 对应的作用域是哪一个。 使用controlle...

YYece的博客 1531

angular 鼠标移入移开元素显示或隐藏

主要使用了ng-mouseenter与 ng-mouseleave 表示鼠标的移入移出

chenhua4088的专栏 2万+

angular2用户输入的一些事件

angular2用户输入的一些事件,鼠标事件、键盘事件、按钮事件

qq_32844875的博客 2718

angular监听鼠标,键盘事件

关键词:$event 监听鼠标事件 &lt;button (click)="onClick($event)"&gt;&lt;/button&gt; $event 输出: MouseEvent {isTrusted: true, screenX: 395, screenY: 541, clientX: 284, clientY: 383, …} 监听键...

惯性力 8571

Angular2事件绑定

用户输入触发 DOM 事件。我们通过事件绑定来监听它们,把更新过的数据导入回我们的component(组件)和model(模板)。 Angular事件绑定机制可以用来响应任何DOM事件。 方式1:最常用的绑定方法: 语法:(DOM事件)= “组件中的处理方法” 举例:绑定用户点击事件 <button (click)="onClickMe()">Click me!</button>

maomaolaoshi的博客 7216

关于“弹出框居中、angular mouse事件、JS类切换”的那些事

今天就只总结了三个问题哦,详情如下: 1.angular的鼠标事件:由于之前一直只用到ng-click,所以居然除了ng-click之外的angular事件都不甚清楚,今天有了鼠标悬停事件的需求,所以就百度了下angular的鼠标事件。 ①.ng-mousedown、②.ng-mouseup、③.ng-mouseenter、④.ng-mouseleave、⑤.ng-mouseover 扩展一

Vita的博客 2726

Angular2组件与Echarts饼状图交互之添加点击事件

参见Echarts官网:http://echarts.baidu.com/api.html#events.%E9%BC%A0%E6%A0%87%E4%BA%8B%E4%BB%B6 events.鼠标事件 鼠标事件的事件参数是事件对象的数据的各个属性,对于图表的点击事件,基本参数如下,其它图表诸如饼图可能会有部分附加参数。 鼠标事件包括'click','dblclick','mou

程序媛一枚 4287

angular指令 mouseover mouseleave 隐藏、显示内容

&lt;!DOCTYPE html&gt; &lt;html lang="en" ng-app="myApp"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;&lt;/title&gt; &lt;script src="../angularj

知行合一 3721

Angular2 脏检查过程

Angular 强大之处在于能将数据变化自动应用到视图上面,这大大减少了开发工作量。 Angular 在脏检查的过程中到底做了哪些事呢?zone.js想要将数据变化应用到页面上面,首先需要检测数据的变化,那么数据会在什么情况下发生变化呢?数据变化一般发生异步事件中,例如: - 浏览器事件,例如 click, mouseover, keyup - setTimout 和 setInterval

u011256637的专栏 8539
上一篇: Angular2学习笔记.2、绑定、ngFor和ngIf指令、MVVM分离、DisplayingData
下一篇: Angular2学习笔记.4、表单相关,双向数据绑定,HeroForm
若简LL
博客等级 码龄11年 8粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值