AngularJS 中的自定义 orderBy 没有绝对字符串比较?

Custom orderBy in AngularJS without absolute string comparison?

我正在为我的系统构建一个小型 CSS 美化器,它只会在 CSS 处于特定顺序时构建。 这个想法是将 CSS 转储到文本区域中,并让应用程序生成代码的有序版本。 我设法做到了,但前提是粘贴在文本区域中的代码没有属性。

例如:

content
margin
font-size

会起作用的。

但如果它是具有属性的正确代码:

content: 'test';
margin: 10px;
font-size: 1em;

那就不会了

我认为失败的原因是比较函数只会将字符串视为完整字符串,而不是部分字符串。

这里是比较函数和a JS Bin.

$scope.customOrder = function (item) {
  switch (item) {
    case 'display':
        return 1;
    case 'flex':
        return 2;
    case 'flex-basis':
        return 3;
    case 'flex-direction':
        return 4;
    ... 
  }
};

关于如何解决这个问题有什么想法吗?

switch之前解析属性名,像这样:

$scope.customOrder = function (item) {
   var parsedItem = item.substr(0, item.indexOf(':'));
   switch (parsedItem) {
     case 'display':
       return 1;
      case 'flex':
        return 2;
      ...