小编Jes*_*uez的帖子

AngularJS'ng-filter'在大约1000个元素的阵列上非常慢

我有一个简单的<input>搜索过滤器设置为项目名称列表AngularJS.

我的列表看起来像这样:

var uniqueLists = {
    category1: ['item1', 'item2', 'item3' ... 'item180' ], // Real list contains ~180 items
    category2: ['itemA', 'itemB', 'itemC' ... 'itemZZZ' ], // Real list contains ~1080 items
    category3: ['otheritem1', 'otheritem2', 'otheritem3' ]  // Real list contains 6 items
  }
Run Code Online (Sandbox Code Playgroud)

我在Angular中遍历此列表并在<ul>每个类别中打印出结果.

<div ng-repeat="(key,val) in uniqueLists">
    <form ng-model="uniqueLists[index][0]">
        <input ng-model="searchFilter" type="text" />
            <ul>
                <li ng-repeat="value in val | filter: searchFilter">
                    <label>
                         <input type="checkbox" ng-model="selectedData[key][value]" />
                        {{value}}
                    </label>
                </li>
            </ul>
    </form>
</div> …
Run Code Online (Sandbox Code Playgroud)

angularjs angularjs-ng-repeat angularjs-filter

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

如何使用基于类的视图处理表单(通过获取或发布)?

我试图学习基于类的视图,对于细节或列表视图并不复杂.

我有一个搜索表单,我只想查看是否发送查询以显示结果.

这是功能代码(不是我的,来自django书):

def search_page(request):
    form = SearchForm()
    bookmarks = []
    show_results = False
    if 'query' in request.GET:
        show_results = True
        query = request.GET['query'].strip()
        if query:
            form = SearchForm({'query': query})
            bookmarks = Bookmark.objects.filter(title__icontains=query)[:10]


    show_tags = True
    show_user = True

    if request.is_ajax():
        return render_to_response("bookmarks/bookmark_list.html", locals(), context_instance=RequestContext(request))
    else:
        return render_to_response("search/search.html", locals(), context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)

忽略ajax事实(现在只是为了使问题更容易),我如何将其转换为基于类的视图?

我快速尝试过这样的事情:

class SearchPageView(FormView):
    template_name = 'search/search.html'

    def get(self, request, *args, **kwargs):
        form = SearchForm()
        self.bookmarks = []
        self.show_results = False
        if 'query' in self.request.GET:
            self.show_results = True
            query = …
Run Code Online (Sandbox Code Playgroud)

django django-class-based-views

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

使用父级的DataContext(WPF - 动态菜单命令绑定)

我查看了这个网站和谷歌,解决方案对我不起作用.

我在UserControl的ViewModel上有一个命令.好吧,usercontrol有一个绑定到ObservableCollection的ItemsControl.在ItemsControl.ItemTemplate的DataTemplate中,我有一个按钮,我想使用该命令.我无法绑定命令,因为在DataTemplate中,datacontext不是ViewModel而是ObservableCollection的项.

问题是:如果丢失了父datacontext,如何将按钮绑定到命令?

我认为这需要一个简单的解决方案,因为我认为这是一个常见的问题.

想象一下这个场景:

您有一个带有observableCollection的ListBox项作为ItemsSource,因此您在ListBox中为集合中的每个元素使用了一个datatemplate.好吧,您想删除所选项目,并在该行的每一行中放置一个按钮.你是怎样做的?

在MVP中,我可以在按钮的单击事件中执行此操作:

Button but = e.Source as Button;

if (but != null)
      Presenter.ActualNote = but.DataContext as Note;
Run Code Online (Sandbox Code Playgroud)

简而言之.您将行的datacontext(所选项目)发送到演示者.

但是,我怎么能用mvvm方式呢?因为我需要使用命令但是我无法将命令分配给按钮,因为该按钮对ViewModel(命令所在的位置)一无所知.

正如您所看到的,按钮必须存在于datatemplate中,然后datacontext不再是ViewModel ....这就是我需要访问父级DataContext以访问命令的原因.

我希望你能更好地理解我的问题.

谢谢.

c# wpf menu dynamic commandbinding

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

在具有MVC 3的远程主机上使用SQL Server CE 4

我刚刚将我的主机升级到MVC 3,但我正在尝试使用SQLCE 4.0做一个"hello world",但我得到了:

很抱歉,在执行您的要求时发生了一个错误.

我看到我的布局和一切,但我看到的不是数据.

在localhost上按预期工作

我有:

<add name="PruebaContext" connectionString="Data Source=|DataDirectory|db.sdf" providerName="System.Data.SqlServerCE.4.0"/>
Run Code Online (Sandbox Code Playgroud)

作为connectionString.

我把sdf作为项目的一部分,我将System.Data.SqlServerCE.dll添加到项目中,并将本地副本设置为true.

我没有更多的想法.connString,dll在/ bin中,在localhost中工作.

有任何想法吗?

谢谢.

编辑

我现在有一些日志:

没有/ bin上的"System.Data.SqlServerCE.dll":

无法找到请求的.Net Framework数据提供程序.它可能没有安装.

System.ArgumentException:无法找到请求的.Net Framework数据提供程序.它可能没有安装.

很好.他们没有SqlServerCE4.

使用本地副本上的Dll,AKA/bin:

无法加载与版本8482的ADO.NET提供程序对应的SQL Server Compact的本机组件.安装正确版本的SQL Server Compact.有关更多详细信息,请参阅知识库文章974247.

异常详细信息:System.Data.SqlServerCe.SqlCeException:无法加载与版本8482的ADO.NET提供程序对应的SQL Server Compact的本机组件.安装正确版本的SQL Server Compact.有关更多详细信息,请参阅知识库文章974247.

KB说我需要x86和amd64的dll.我在某处读到了如果我将两个目录复制到/ bin,例如:/ bin/x86和/ bin/amd64.我从SqlServerCE 4安装文件夹的私人文件夹中复制了这些文件夹.现在我得到了:

在ADO.NET提供程序和SQL Server Compact的本机二进制文件之间检测到可能的文件版本不匹配,这可能导致功能不正确.这可能是由于存在多个不同版本的SQL Server Compact实例,或者是由于与SQL Server Compact二进制文件具有相同名称的错误二进制文件.请安装匹配版本的SQL Server Compact二进制文件.

好.在SQLServerCE4的根文件夹上我也有一些dll,所以我删除了这两个文件夹并将该dll复制到/ bin:

无法加载文件或程序集'file:/// C:\ HostingSpaces\jesusrod\foxandxss.net\wwwroot\mvc3\bin\sqlceca40.dll'或其依赖项之一.该模块应该包含一个程序集清单.

我想我尝试过所有的事情.Scottgu说SqlServerCE 4应该可以在没有安装的任何服务器上运行.

sql-server-ce sql-server-ce-4 asp.net-mvc-3

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

从observableArray中获取具体元素

这似乎很容易,但两个小时后我的头疼了.

我有一个categoryIndex(来自一个选择),我想从具有该Id的observableArray中获取该类别.

我怎么做的?我尝试使用indexOf(但我不确定它是如何工作的,当然我看了doc),我尝试了linq.js但是Where很难使用或者我很愚蠢(我不知道如何从类别中获取Id并比较它).

我的observableArray是这样的:

categories[category { Id=2,  Name="Pink", ...}, category { Id=1,  Name="Green",  ...}]
Run Code Online (Sandbox Code Playgroud)

所以,如果我的索引是2,我只需要一种方法来获得"粉红色"类别.

谢谢.

编辑:

viewModel.addNote = function() {
    var selectedCategoryIndex = $("#Categories").val();
    var selectedCategory = ko.utils.arrayFirst(this.categories(), function(item) {
        return item.Id === selectedCategoryIndex;
    });

}.bind(viewModel);
Run Code Online (Sandbox Code Playgroud)

knockout.js

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

使用基于类的视图和ajax的Django应用程序?

我正在学习Django,我发现了基于类的视图,我想知道如何在这些视图上实现Ajax.

我搜索了github的django项目,我发现一些使用基于类的视图但不是ajax.

那么......有谁知道一个开源项目同时使用这两个东西?这种方式更容易学习.

谢谢 :)

django ajax django-class-based-views

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

knockoutjs映射/到POCO对象

有没有办法从/向POCO和knockoutjs可观察到?

我有一个Note类:

public class Note
{
    public int ID { get; set; }
    public string Date { get; set; }
    public string Content { get; set; }
    public string Category { get; set; }
    public string Background { get; set; }
    public string Color { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这是我的javascript:

$(function () {
    ko.applyBindings(new viewModel());
});

function note(date, content, category, color, background) {
    this.date = date;
    this.content = content;
    this.category = category;
    this.color = color;
    this.background = background;
}

function …
Run Code Online (Sandbox Code Playgroud)

mapping asp.net-mvc poco knockout.js

12
推荐指数
1
解决办法
3443
查看次数

ReExCommand <T>上的CanExecute无法正常工作

我正在使用MVVM Light V3 alpha 3编写一个WPF 4应用程序(使用VS2010 RC),并且在这里遇到了一些奇怪的行为......

我有一个打开a的命令,Window那个Window创建了ViewModel等等 - 那里没什么奇怪的.

在那Window我有一些RelayCommands,例如:

CategoryBeenSelected = new RelayCommand(() => OnCategoryUpdate = true);
Run Code Online (Sandbox Code Playgroud)

没有什么奇怪的 - 它按照我的预期工作.

问题是我不能使用通用RelayCommand的CanExecute方法/ lambda表达式.

这有效:

DeleteCategoryCommand = new RelayCommand<int>(DeleteCategory);
Run Code Online (Sandbox Code Playgroud)

但这不是:

DeleteCategoryCommand = new RelayCommand<int>(DeleteCategory, CanDeleteCategory);
Run Code Online (Sandbox Code Playgroud)

窗口没有出现.我的意思是,我单击打开窗口的按钮,应用程序刚刚被阻止,几秒钟后,Window的InitializeComponent方法抛出一个NullReferenceException(对象引用未设置为对象的实例)

简而言之,如果我将一个CanExecute方法放在a上RelayCommand<T>,Window那么拥有 ViewModel(带有)的那个RelayCommand<T>就无法实例化.如果我删除了CanExecute,Window显示出来.

这里的问题在哪里?我糊涂了.

谢谢.

编辑:根据要求,这是堆栈跟踪:

A first chance exception of type 'System.NullReferenceException' occurred in PresentationFramework.dll
   at GalaSoft.MvvmLight.Command.RelayCommand`1.CanExecute(Object parameter)
   at System.Windows.Controls.Primitives.ButtonBase.UpdateCanExecute()
   at …

c# wpf mvvm relaycommand

11
推荐指数
1
解决办法
1万
查看次数

如何删除ListView的添加项动画?

我有一个ListView和我编辑它ItemContainerStyle来修改一些风格,但我不知道如何在添加项目时删除恼人的动画.

使用ItemsControl,当您添加新项目时,它会立即显示,没有任何动画.

使用ListView,该项目需要一段时间,然后,它会启动一个动画显示.

我只是想删除它add animation,当我点击Add item它立即出现,没有额外的东西.

我认为它应该属于,ItemContainerStyle但即使我评论了所有的视觉状态动画,并且仍然存在.我错过了一些东西.

animation listview windows-runtime

10
推荐指数
2
解决办法
6507
查看次数

检查angularjs中的条件

基本上我有一个工厂

angular.module('app').factory('gService',gService);
function gService($filter, $window) {
    function confirmDialog(message, success, fail) {
        var confirmMessage = navigator.notification.confirm(
                message,
                onConfirm,
                '',
                [$filter('translate')('OK'), $filter('translate')('CANCEL')]
            );
        function onConfirm(index) {         
            return index === 1 ? success() : fail();
        }
        return confirmMessage;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果执行或不执行功能,我想检查此工厂外的条件

if(gService.confirmDialog.onConfirm){

}
Run Code Online (Sandbox Code Playgroud)

这不起作用.如何检查以角度执行的功能?

javascript if-statement conditional-statements angularjs

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