我有一个Backbone视图,例如,编辑配置文件视图,我将视图传递给我的用户模型实例.但是,我想让用户从选择下拉列表中选择自己喜欢的社交网络.现在,这个社交网络列表由他们填充在应用程序的另一个区域.
我的问题是,1.存储这些社交网络的最佳方式是什么?每个模型,所以社交网络的集合?2.然后我将一个集合(社交网络)和一个模型(用户)传递给我的编辑个人资料视图?
这是最好的方法吗?
我用Mongoose/Express更新Mongo中的记录:
app.put('/loggedIn/:id', function(req, res) {
if (req.user._id == req.params.id) {
User.update({
_id: req.user._id
}, {
$set: {
interests: req.body.interests
}
}, function(err, num) {
if (err) return err;
User.findById(req.user._id, '_id username interests', function(err, user) {
if (err) return;
res.json(user);
});
});
} else {
console.log('fail');
}
});
Run Code Online (Sandbox Code Playgroud)
我怎样才能避免在回调中做第二个查询update(),似乎很多只是为了返回新更新的文档.
在这里有一个完整的噩梦,努力向自己解释为什么this是window对象?
(function () {
function get () {
alert(this);
}
get();
})();
Run Code Online (Sandbox Code Playgroud)
我的理解是函数在JS中创建了范围,它是如何引用windowObject的?
我有这个代码:
(function() {
function App(elements, options) {
if (!this instanceof App) return new App(elements, options);
var that = this;
return this;
}
window.App = App;
})();
App(document.querySelectorAll('.Slider-slide'), {
interval: 5000
});
Run Code Online (Sandbox Code Playgroud)
我的问题是,它永远不会创建一个新的实例App,所以,this进一步下来的代码总是Window对象,任何想法为什么??
我有一个被调用的方法,它做的第一件事就是确定网络何时可以访问。如果不是,我想等待 10 秒,然后使用最初传入的参数/参数运行相同的方法..
这是我的灾难性尝试(我更像是一个 JS 开发者,对 Objective-C 来说相对较新):
- (void)sendRequestToURL:(NSString *)url withPostData:(NSString *)postData withPage:(int)page sortBy:(NSString *)sort completionBlock:(void (^)(NSDictionary *))completion {
if(![FooNetworkManager isReachable]){
self.lastRequest = ??? // lastRequest is an NSDictionary
dispatch_time_t delay = dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC * 10);
dispatch_after(delay, dispatch_get_main_queue(), ^(void){
[self sendRequestToURL:self.lastRequest]; // this is almost definitely wrong
});
}
}
Run Code Online (Sandbox Code Playgroud)
在 JavaScript 中,在一个方法中,我们可以访问arguments包含传递给该方法的所有参数的对象,但不确定如何在 Objective-C 中复制它。
此外,self.lastRequest在同一个类中进一步定义:
@property(nonatomic, strong) NSDictionary *lastRequest;
Run Code Online (Sandbox Code Playgroud) 我在xcode中有两个应用程序,我想要合并,所以我开始了一个新项目并尝试将这两个应用程序放在一起.这是一件非常愚蠢的事吗?
该应用程序现在崩溃启动,我不知道为什么,我99%的网点都连接.它使用xcdatamodel进行存储,我已经导入了正确的框架.
谁能想到任何其他可能出错的事情?
如果有人不介意看,我可以在项目中附上一个zip文件
任何帮助都非常感谢!
谢谢
这是堆栈跟踪:
2010-11-02 08:18:59.903 iStalker[34745:207] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIApplication 0x5b10e20> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key textField.'
*** Call stack at first throw:
(
0 CoreFoundation 0x0256f919 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x026bd5de objc_exception_throw + 47
2 CoreFoundation 0x0256f851 -[NSException raise] + 17
3 Foundation 0x0003bc2b _NSSetUsingKeyValueSetter + 135
4 Foundation 0x0003bb99 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 285
5 UIKit 0x004b5d0a -[UIRuntimeOutletConnection connect] + 112
6 …Run Code Online (Sandbox Code Playgroud) 我已经google了,但我可以找到一种方法来使用jQuery构建json并使用for循环将其发送到php.我有一个html表,我想从每一行中获取值(我不知道将有多少行/值)构造一个json字符串,即.[{"row": 1, "supp_short_code" : blah blah....}, {"row": 2, ....} ....]
但我不知道如果jQuery发现更多的值,如果有意义的话,如何继续添加到json数据串?
编辑:
所以,如果我有这个
$('#submit').live('click',function(){
var supp_short_code=$('.supp_short_code').text();
var project_ref=$('.project_ref').text();
var om_part_no=$('.om_part_no').text();
var description=$('.description').text();
var cost_of_items=$('.cost_of_items').text();
var cost_total=$('.cost_total').text();
var dataString = 'string=//' + supp_short_code + '//' + project_ref + '//' + om_part_no + '//' + description + '//' + cost_of_items + '//' + cost_total
$.ajax
({
type: "POST",
url: "order.php",
data: dataString,
cache: false,
success: function()
{
alert("Order Submitted");
}
});
});
Run Code Online (Sandbox Code Playgroud)
那么(大致)我需要在这段代码中改变什么?

好的,正如您在屏幕截图中看到的那样,当用户点击顶部表格中的一行时,我正在使用jquery动态添加底部表格,计算总计并且他们可以指定他们想要使用哪个供应商.然后我使用jquery将这些值集中到顶部的jquery代码的$('submit')位.然后我想将这些值发送到一个php页面,它将以某种方式解析收到的数据,将其插入到mysql数据库中,就像"id 1 product blah price blah supplier blah …
我有这个jquery代码:
$(document).ready(function() {
function slideSwitch() {
var $active = $('#slideShow IMG.active');
if ( $active.length == 0 ) $active = $('#slideShow IMG:last');
var $next = $active.next().length ? $active.next()
: $('#slideShow IMG:first');
$active.addClass('last-active');
$next.css({opacity: 0.0})
.addClass('active')
.animate({opacity: 1.0}, 1000, function() {
$active.removeClass('active last-active');
});
}
setInterval( "slideSwitch()", 5000 );
});
Run Code Online (Sandbox Code Playgroud)
并且它没有定义slideSwitch()的错误?有任何想法吗?
我已将Names全部小写存储到mysql数据库中,但我的用户希望在网站上看到它们作为首字母大写.但是我试图找出一种方法,无论是服务器端(PHP)还是客户端(jQuery),这样做而不改变数据库中的任何东西?这可能吗?
码:
$result = mysql_query("SELECT user from `users` order by user asc") or die(mysql_error());
echo '<select name="user" class="user">';
while ($row = mysql_fetch_array($result)) {
echo "<option value='".$row['user']."'>".$row['user']."</option>";
}
echo '</select>';
Run Code Online (Sandbox Code Playgroud) 我正在使用jQuery AJAX从PHP页面获取一些数据,并在占位符中使用加载GIF图像,让用户知道结果正在进行中.
$(".project").change(function(){
$(".custName").html("<img src='/admin/images/ajax-loader.gif' />");
$(".projectDesc").html("<img src='/admin/images/ajax-loader.gif' />");
var project_num=$(this).val();
var dataString = 'project='+ project_num;
$.ajax
({
type: "POST",
url: "customerfilter.php",
dataType: "json",
data: dataString,
cache: false,
success: function(data)
{
$(".custName").html(data.message1);
$(".projectDesc").html(data.message2);
}
});
});
Run Code Online (Sandbox Code Playgroud)
当我点击触发器并打开Firebug控制台时,我可以看到POST返回并且数据是正确的.然而,加载gif永远不会消失,永远不会被正确的数据所取代 - 不知道为什么!?
这是Firebug和RESPONSE窗口的屏幕截图:

相对PHP:
while ($row = mysql_fetch_array($result)) {
echo json_encode(array(
"message1" => $row['cust_name'],
"message2" => $row['description'],
));
Run Code Online (Sandbox Code Playgroud)
$ result是一个mysql_query