带打字稿的角度ng-controller

阿德里安·沃伊辛(Adrien Voisin)

我不太了解ng-controller如何与Angular配合使用:

我有documentSearch.component.html :(这只是链接到控制器的部分)

<div ng-controller=mainCtrl>
      <div mass-autocomplete>
        <input ng-model="dirty.value"
               mass-autocomplete-item="autocomplete_options">
      </div>
</div>

还有documentSearch.component.ts:

@Component({
  selector: 'app-documentsearch',
  templateUrl: './document-search.component.html',
  styleUrls: ['./document-search.component.css']
})

export class DocumentSearchComponent implements OnInit {

    constructor() {...}

    ngOnInit(){...}

    someFunction(...){...}

}

我想尝试的代码是这样的:

var app = angular.module('app', ['ngSanitize', 'MassAutoComplete']);
app.controller('mainCtrl', function ($scope, $sce, $q) {
$scope.dirty = {};

var states = ['Alabama', 'Alaska', 'California', /* ... */ ];

function suggest_state(term) {
var q = term.toLowerCase().trim();
var results = [];

// Find first 10 states that start with `term`.
for (var i = 0; i < states.length && results.length < 10; i++) {
  var state = states[i];
  if (state.toLowerCase().indexOf(q) === 0)
    results.push({ label: state, value: state });
}

return results;
}

 $scope.autocomplete_options = {
   suggest: suggest_state
 };
});

但是我不知道如何使用它。我是否必须在其上使用它documentSearch.component.ts,是否必须为控制器创建另一个类?

我必须对此Typescript代码进行哪些更改?

谢谢

火化

您正在混合AngularJS(Angular 1.x)和Angular(Angular 2-6)代码。

documentSearch.component.ts文件是现代角,但documentSearch.component.html是AngularJS模板。您想尝试的代码也是AngularJS。

虽然这两个框架是由同一团队开发的,但它们在许多层次上都完全不同。例如,Angular专注于组件,而在AngularJS中,控制器(通常)与模板分离。模板语法也完全不同,虽然Angular基于TypeScript本身,但AngularJS总体上仅对TypeScript提供中等支持。

总结:选择一个框架并坚持下去。您无法轻松地将AngularJS代码集成到Angular应用程序中,反之亦然。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章