我想知道我如何Controller as结合使用语法,ngRoute因为我无法做到ng-controller="Controller as ctrl"
我正在尝试将我的控制器分成多个文件,但是当我尝试在我的模块中注册它时我得到一个错误:
groupcontroller.coffee
app = angular.module('WebChat', []);
app.controller 'GroupController', ($scope) ->
Run Code Online (Sandbox Code Playgroud)
usercontroller.coffee
app = angular.module('WebChat', []);
app.controller 'UserController', ($scope) ->
Run Code Online (Sandbox Code Playgroud)
错误
错误:参数'GroupController'不是函数,未定义
从文档中我还没有真正得到模块方法所做的事情.它是否用"网聊"键存储我的控制器?
编辑: 似乎传递[]创建一个新模块并覆盖前一个模块
app = angular.module('WebChat', []);
Run Code Online (Sandbox Code Playgroud)
为了防止这种情况,你必须省略[]之类的
app = angular.module('WebChat');
Run Code Online (Sandbox Code Playgroud) 如果包含Basic auth,预检HTTP请求会如何?喜欢以下对话?我无法理解哪些标头需要发送到哪里,也因为无法使用Firebug正确调试它
客户:
OPTIONS /api/resource HTTP/1.1
Access-Control-Request-Method: GET
Origin: http://jsconsole.com
Run Code Online (Sandbox Code Playgroud)
服务器:
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, PUT, DELETE
Access-Control-Allow-Headers: Authorization
Access-Control-Max-Age: 1728000
Access-Control-Allow-Credentials: true
Run Code Online (Sandbox Code Playgroud)
客户:
GET /api/resource HTTP/1.1
Access-Control-Request-Method: GET
Access-Control-Allow-Credentials: true
Origin: http://jsconsole.com
Run Code Online (Sandbox Code Playgroud)
服务器:
HTTP/1.1 401 Unauthorized
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, PUT, DELETE
Access-Control-Allow-Headers: Authorization
Access-Control-Max-Age: 1728000
Access-Control-Allow-Credentials: true
WWW-Authenticate: Basic realm="Authorisation Required"
Run Code Online (Sandbox Code Playgroud)
客户:
GET /api/resource HTTP/1.1
Access-Control-Allow-Credentials: true
Authorization: Basic base64encodedUserAndPassword
Access-Control-Request-Method: GET
Origin: http://jsconsole.com
Run Code Online (Sandbox Code Playgroud)
服务器:
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, …Run Code Online (Sandbox Code Playgroud) web-applications http basic-authentication cors asp.net-web-api
如何通过事件广播对象?
目前我正在尝试:
app.run ($rootScope) ->
message = {type: 'channel', action: 'create', data: { name: "ssss", id: 0}}
$rootScope.$broadcast('message', message)
angular.module('WebChat').controller 'ChannelController', ($scope) ->
$scope.$on 'message', (message) ->
console.log message
console.log 'hi'
Run Code Online (Sandbox Code Playgroud)
但我没有输出
编辑 我得到了它的工作.似乎回调函数的第一个参数是范围.我不得不将控制器更改为:
angular.module('WebChat').controller 'ChannelController', ($scope) ->
$scope.$on 'message', (scope, message) ->
console.log message
console.log 'hi'
Run Code Online (Sandbox Code Playgroud) 我从带有update/create/delete标志的websocket接收JSON对象.根据这些信息,我要么更新,创建或删除HTML元素并绑定回调.这可能会影响多个HTML元素.
我目前的方法是将所有内容放入通过jquery处理HTML生成的特定对象,例如:
$.("<table>").addChild($("<tr>")).addClass('test')
Run Code Online (Sandbox Code Playgroud)
并绑定事件侦听器.但随着越来越多的代码的添加,它变得非常混乱,现在我正在寻找一种分离代码的正确方法.
有没有关于如何正确做到这一点的想法?构架?也许jQuery模板(这仍然让我在如何干净地添加回调的黑暗中)?
我想测试一个指令是否将正确的jquery函数绑定到DOM并且它们是否有效.
例如,我想测试一个元素在用$ .slideUp()滑动之后是否可见,或者我想在html输入上执行click事件.
似乎我需要以某种方式将编译的指令附加到DOM以实现这一点.我在youtube上观看了测试指令视频,他说这是可能的,但他并没有提到你是如何做到的.
我有点卡住了.
下面是失败测试的链接:http://plnkr.co/edit/PojXf8?p = preview
我试图创建一个通用的lambda,所以我不需要为个别类型重新定义它.为此,我需要访问传递给函数的类型参数.不幸的是,我没有找到任何关于如何做到这一点的文档.
这是我想要做的一个例子,但在lambda的前面不会编译:
import java.util.ArrayList;
public class Test {
interface SolveFunction {
<In, Out> Out apply(In in);
}
public static void main(String...args) {
SolveFunction f = <In, Out> (In a) -> {
ArrayList<Out> list = new ArrayList<>();
return list;
};
System.out.println(f.<String, Integer>apply("Hi").size());
}
}
Run Code Online (Sandbox Code Playgroud) angularjs ×4
javascript ×2
coffeescript ×1
cors ×1
generics ×1
html ×1
http ×1
jasmine ×1
java ×1
java-8 ×1
jquery ×1
karma-runner ×1
lambda ×1
ngroute ×1
templates ×1