小编iLe*_*ing的帖子

从MonoTouch切换回Objective-C

我知道我不是第一个,可能很多人经常在这里提出类似的问题,这个问题可能是另一个结束投票的候选人.我不是想开始另一轮无尽的圣战,我不是在问哪种语言更好.这不是"一对一"系列的问题.但我需要你的意见.

我公司最近指派我进行iOS移动开发.虽然我的第一个也是最喜欢的语言是c#,但我不介意学习新的语言.显然我没有Objective-C的问题.当然,有些结构现在看起来不太可读,但一周后我觉得语言本身与c#相比并不是很可怕.
在一开始我决定首先了解人们的意见,在那里我读到: 如何在MonoTouch和Objective-C之间做出决定? 还有这里: 适用于iphone应用的MonoTouch和C#VS Objective C.

当然我的第一选择是使用Monotouch.我有一本书,我下载了一个教程.但后来我意识到,不管怎样,我都需要学习原生的iOS SDK基础知识,如果过了一段时间我需要深入研究,我需要研究那些用Objective-c编写的样本.

  • 我知道MonoTouch现在要比半年前好多了,Miguel和他的工作人员改进它,而且每天都会变得更好.这种产品的报酬绝对公平合理.我不介意花400美元购买许可证.

  • 我知道真正的问题不在于objective-c,而在于基础和CocoaTouch库,这需要一些时间来学习.

  • 据我所知,有些东西很难通过本地库来玩,比如XML处理,REST调用以及其他一些东西,MonoTouch在这里可能非常方便

  • 这与人们担心Apple拒绝使用MonoDevelop编写的应用程序的旧时代不同.今天在AppStore中有相当多的MD应用程序.当然Apple无法预测,但他们不太可能很快开始删除应用程序.即便如此,我相信Miguel和他的团队也会提出解决方案.

所以,我的好奇心是:有多少人在使用MonoTouch后有时会从MonoTouch切换回(或考虑转回)Objective-C和Xcode?为什么?可能是什么原因?是否有某些东西可以强迫某人重新设计在MD中创建的应用程序并使用Xcode和Objective-C重写它?

c# objective-c xamarin.ios ios

7
推荐指数
0
解决办法
859
查看次数

获取当前元素

可以ng-click通过使用$event属性拦截类似处理程序中的当前事件对象.

但是有可能获得调用该方法的元素吗?

例如:

<div ng-controller='myController'>
  <div>{{distortThatDiv($element)}}</div>
</div>
Run Code Online (Sandbox Code Playgroud)

angularjs

7
推荐指数
2
解决办法
2万
查看次数

angular.js性能问题

性能选项卡上的Batarang显示在应用程序的根目录上,angular是调用函数,如下所示: function (a){var e,f,i=a.$eval(h),m=hc(i,.

根据batarang,它的速度非常缓慢,当我在应用程序上获得更多行时,它会减慢应用程序并使Firefox崩溃(尽管Chrome仍在处理它).那到底是做什么的?我该如何解决这个问题?

angularjs

7
推荐指数
1
解决办法
5225
查看次数

从javascript链接到.cshtml视图

你如何从javascript文件直接指向.cshtml视图?例如,为什么我不能使用angular.js的.cshtml视图?像在这个例子中:

 .directive('encoder', ($timeout) => {
        return {
            restrict: 'E',
            transclude: true,
            scope: 'isolate',
            locals: { service: 'bind' },
            templateUrl: 'encoderTemplate.cshtml' // <-- that's not possible?
        }
    });
Run Code Online (Sandbox Code Playgroud)

当然可以有一个返回你想要的动作方法,但我很好奇是否可以直接引用剃刀视图.

javascript asp.net-mvc angularjs angularjs-directive

7
推荐指数
2
解决办法
5611
查看次数

关于mvc,require.js和angular的童话故事.从来没有幸福过吗?

所以.曾几何时,有四种神奇的生物:asp.net mvc,require.js和angular.一位聪明的巫师决定把它们放在同一个房子里,让asp.net的每一个视图都拥有自己的"代码隐藏"javascript文件;

首先他加入了 _Layout.cshtml

 <script  data-main="/main" src="~/Scripts/require.js"></script>
Run Code Online (Sandbox Code Playgroud)

然后他main.js在根中创建:

require.config({
    baseUrl: "/Scripts/",
    paths: {
        'jquery': 'jquery-1.9.1.min',
        'jquery-ui': 'jquery-ui-1.10.2.custom.min',
        'angular': 'angular.min',
        'ng-grid': 'ng-grid-2.0.2.debug'
    },
    shim: {
        'jquery': { exports: "$" },
        'underscore': { exports: "_" },
        'jquery-ui': ['jquery'],
    },
});
 // Standard Libs
require(['jquery','jquery-ui','underscore','angular']);
Run Code Online (Sandbox Code Playgroud)

没什么花哨和神奇的.但后来他创建了一个html助手:

public static MvcHtmlString RequireJs(this HtmlHelper helper)
{
    var controllerName = helper.ViewContext.RouteData.Values["Controller"].ToString(); // get the controllername 
    var viewName = Regex.Match((helper.ViewContext.View as RazorView).ViewPath, @"(?<=" + controllerName + @"\/)(.*)(?=\.cshtml)").Value; //get the ViewName - extract it from ViewPath by …
Run Code Online (Sandbox Code Playgroud)

requirejs asp.net-mvc-4 angularjs

7
推荐指数
1
解决办法
1333
查看次数

gulp,browserify,maps?

如何启用源映射?我这样做:

  var browserify = require("gulp-browserify")

  gulp.task("compile:client", function() {
    gulp.src("src/client/app.coffee", {
      read: false
    })
    .pipe(browserify({
      debug: true // THIS DOES NOTHING :(
      transform: ['coffeeify'],
      extensions: ['.coffee']
    }))
    .pipe(rename('app.js'));
  });
Run Code Online (Sandbox Code Playgroud)

哎呀...出于某种原因,在gulub-browserify 的github页面上,它说:PLUGIN是BLACKLISTED.

我不明白......我觉得如何使用浏览器和我的coffeescript文件呢?

UPD:哈!我错了:debug选项有效.它只是将源地图信息粘贴到输出javascript文件中.真棒.问题仍然悬而未决:为什么这个插件被列入黑名单?

coffeescript browserify gulp

7
推荐指数
2
解决办法
4323
查看次数

使用node-inspector调试Gulpfile需要很长时间才能启动

我试图通过运行它来节点检查器来调试我的gulp taks

node-debug $(which gulp) build
Run Code Online (Sandbox Code Playgroud)

这是有效的,除了我的Gulpfile不是,.js.coffee由于某种原因它开始挂起差不多一分钟说:

需要外部模块咖啡脚本/注册

我正常运行它并不需要很长时间,如果我使用Gulpfile.js它几乎立即启动节点检查器.当我使用Gulpfile.coffee时为什么需要太长时间?

这不是什么大问题,但有点烦人

node.js coffeescript node-inspector gulp

7
推荐指数
1
解决办法
1046
查看次数

Docker容器中的Couchbase XDCR

我需要有本地Couchbase集群并将我们的prod集群中的数据复制到它上面,不能直接在OS X上安装它(因为vbuckets不兼容 - prod集群在linux上).

Docker用于救援.我已经设法创建了Dockerfile, 你可以在这里看到它.

现在,集群运行,它可以在LAN内访问,所有必要的端口都转发 - 我使用了这里描述的技巧

我在XDCR选项卡中成功创建了集群引用,但每当我尝试复制存储桶的数据时 - 它会将我的集群的主机名更改为某个非敏感的IP地址并创建一个日志条目:

Updated remote cluster `mycluster` hostname to "172.17.0.5:8091" 
because old one ("mylaptop.company.com:8091") 
is not part of the cluster anymore
Run Code Online (Sandbox Code Playgroud)

我知道Couchbase对ip地址非常敏感,正如你所看到的,我正在使用我的机器的主机名(docker容器的主机).我尝试使用改变容器的主机名docker run -h,这似乎没有帮助.

有人,你们有没有设置XDCR与在docker容器中运行的集群?

linux networking couchbase docker xdcr

7
推荐指数
1
解决办法
302
查看次数

WPF DataGridTemplateColumn.我错过了什么吗?

     <data:DataGridTemplateColumn Header="Name">
        <data:DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding Name}">
            </DataTemplate>
        </data:DataGridTemplateColumn.CellTemplate> 
        <data:DataGridTemplateColumn.CellEditingTemplate>
            <DataTemplate>
                <TextBox Text="{Binding Name}">
            </DataTemplate>
        </data:DataGridTemplateColumn.CellEditingTemplate> 
    </data:DataGridTemplateColumn>              
Run Code Online (Sandbox Code Playgroud)

这是模板列的明显例子,对吧?这可能有什么问题?所以,这就是事情 - 当用户通过点击TAB键导航DataGrid时,它需要点击TAB两次(!)才能编辑TextBox中的文本.一旦用户获得列焦点,我怎么能让它可编辑,我的意思是即使他刚刚开始打字?

好.我找到了一种方法 - 进入Grid.KeyUp()我把代码放在下面:

 if (Grid.CurrentColumn.Header.ToString() == "UserName")
        {
            if (e.Key != Key.Escape) 
            {
                Grid.BeginEdit();

                // Simply send another TAB press
                if (Keyboard.FocusedElement is Microsoft.Windows.Controls.DataGridCell)
                {
                    var keyEvt = new KeyEventArgs(Keyboard.PrimaryDevice, Keyboard.PrimaryDevice.ActiveSource, 0, Key.Tab) { RoutedEvent = Keyboard.KeyDownEvent };
                    InputManager.Current.ProcessInput(keyEvt);
                }
            }
        } 
Run Code Online (Sandbox Code Playgroud)

wpf datagrid focus wpftoolkit wpfdatagrid

6
推荐指数
2
解决办法
2万
查看次数

Telerik().ScriptRegistrar()如何防止加载jquery库?

脚本注册器甚至在加载jquery.validation.min.js之后

Html.Telerik().ScriptRegistrar().jQuery(false)
Run Code Online (Sandbox Code Playgroud)

有没有办法告诉它不要这样做?

即使我尝试加载我需要的东西,执行此操作:

@Html.Telerik().ScriptRegistrar().jQuery(false).DefaultGroup(g =>
{
    g.Add("telerik.common.min.js");
    g.Add("telerik.tabstrip.min.js");
}
Run Code Online (Sandbox Code Playgroud)

例如,如果我在页面上有一个telerik网格,它将加载所有必要的脚本,包括grid.min,grid.editing和jquery.validate.min.

如果我忘了定义正确的脚本,我宁愿自己控制它,而不是仅仅为了得到错误,或者不起作用的元素.

如果我尝试使用此代码段:

@Html.Telerik().ScriptRegistrar().jQuery(false).Scripts(s =>
{
    s.Add("telerik.common.min.js");
...
Run Code Online (Sandbox Code Playgroud)

useTelerikContentDeliveryNetwork="true"在web.config中忽略,并在本地服务器上搜索脚本.我还是想用CDN.

UPD:实际上有一种方法可以使用telerik的CDN源,但如果由于某种原因它们已关闭,从项目的服务器加载所有东西?

telerik-mvc asp.net-mvc-3

6
推荐指数
1
解决办法
5860
查看次数