在事件回调中更新模型时更新模型属性对视图没有影响,有什么想法可以解决这个问题吗?
这是我的服务:
angular.service('Channel', function() {
var channel = null;
return {
init: function(channelId, clientId) {
var that = this;
channel = new goog.appengine.Channel(channelId);
var socket = channel.open();
socket.onmessage = function(msg) {
var args = eval(msg.data);
that.publish(args[0], args[1]);
};
}
};
});
Run Code Online (Sandbox Code Playgroud)
publish() 功能是在控制器中动态添加的.
控制器:
App.Controllers.ParticipantsController = function($xhr, $channel) {
var self = this;
self.participants = [];
// here publish function is added to service
mediator.installTo($channel);
// subscribe was also added with publish
$channel.subscribe('+p', function(name) {
self.add(name);
});
self.add = function(name) …Run Code Online (Sandbox Code Playgroud) 我有这样的资源:var Products = $resource('companies/:companyId/products')
问题是,我想通过url获取所有公司的产品companies/products,但是使用资源而不提供companyId我得到了companies//products.可能我可以使用另一个网址,就像我一样/products,但这是否意味着我必须为同一个东西拥有另一个资源?
在这个简单的例子中,我可以更改网址companies/products/:companyId,但似乎是非常普遍的情况.
我在Web Api控制器中有这个动作:
public Data GetData(ComplexModel model)
Run Code Online (Sandbox Code Playgroud)
和模型是
class ComplexModel
{
Guid Guid1 { get; set;}
Guid Guid2 { get; set;}
string String1 { get; set;}
}
Run Code Online (Sandbox Code Playgroud)
我想为Guid类型指定自定义绑定器,例如空字符串或null将绑定到空guid并且不想使用可空类型.试图注册这样的模型绑定器:
var pb = configuration.ParameterBindingRules;
pb.Insert(0, typeof(Guid), param => param.BindWithModelBinding(new GuidBinder()));
Run Code Online (Sandbox Code Playgroud)
但它没有被调用,我得到无效的模型状态,错误信息是空字符串不能转换为类型Guid.
我有这种功能.
function SomeFunction()
{
const int NUMBER_OF_CONCURENT_THREADS = 50;
List<Guid> sessions = new List<Guid>();
ManualResetEvent[] doneEvents = new ManualResetEvent[NUMBER_OF_CONCURENT_THREADS];
Action<int> makeServiceCall = (iter) =>
{
var proxy = GetProxy();
sessions.Add(proxy.GetCurrentSessionId());
doneEvents[iter].Set();
};
for (int i = 0; i < NUMBER_OF_CONCURENT_THREADS; ++i)
{
doneEvents[i] = new ManualResetEvent(false);
ThreadPool.QueueUserWorkItem((o) =>
{
int iter = i;
makeServiceCall(iter);
});
}
WaitHandle.WaitAll(doneEvents);
Assert.AreEqual(50, sessions.Count);
}
Run Code Online (Sandbox Code Playgroud)
问题是我IndexOutOfRangeException在doneEvents[iter].Set();代码行时得到了.请问,任何想法如何解决?
问题在于将复选框(已选中/未选中)的状态绑定到对象值.
HTML:
<div ng:controller="Ctrl">
<div ng:repeat="(letter, number) in obj">
{{letter}} and {{number}}
<input type="checkbox" ng:model="obj[letter]">
</div>
Run Code Online (Sandbox Code Playgroud)
控制器:
function Ctrl() {
this.obj = {a:true,b:true};
};?
Run Code Online (Sandbox Code Playgroud)
单击第一个复选框时,它会影响第二个复选框的状态,但模型是正确的,因此obj变为{a:false,b:true}.
示例可以在http://jsfiddle.net/alexpetrov/tRxzr/找到
如何解决这个问题?