ng-tagsInput 不工作
ng-tagsInput is not working
JS
var app = angular.module('plunker', ['ngTagsInput']);
//'ngTagsInput'
app.controller('MainCtrl', function($scope, $http) {
$scope.tags = [];
$scope.loadTags = function(query) {
return $http.get('http://localhost/search.php?term='+query);
};
});
HTML:
<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<script>document.write('<base href="' + document.location + '" />');</script>
<link rel="stylesheet" href="style.css" />
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://mbenford.github.io/ngTagsInput/css/ng-tags-input.min.css" />
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.2/angular.min.js"></script>
<!--<script src="http://mbenford.github.io/ngTagsInput/js/ng-tags-input.min.js"></script> -->
<script src="ng-tags-input.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="app.js"></script>
</head>
<body ng-controller="MainCtrl">
<div class="container-fluid">
<div>
<tags-input ng-model="tags" >
<auto-complete source="loadTags($query)"></auto-complete>
</tags-input>
</div>
</div>
<p>Model: {{tags}}</p>
</body>
</html>
这是一个示例 html 代码,可以显示基于标签的过滤栏。但我想与已经实施的另一个应用程序集成。该应用程序有自己的应用程序,控制器定义。问题是即使在模板中进行更改后我也看不到任何更改(主应用程序使用 mustache 模板)。这些是我所做的更改。
查看我刚刚添加 ['ngTagsInput'] 到应用定义
的 JS 部分
var app = angular.module('staticSelect', ['ui.bootstrap','ngTagsInput']);
app.controller('ExampleController', ['$scope', '$http', '$rootScope','$timeout', function($scope, $http, $rootScope, $timeout) {
$scope.tags = [];
我的 HTML 变化:
<div class="container-fluid" >
<p>some junk</p>
<tags-input ng-model="tags" >
<!--<auto-complete source="loadTags($query)"></auto-complete> -->
</tags-input>
</div>
根据我的理解,它至少应该显示标签框,但它没有显示。
我的问题:
1. Am i missing something ?
2. What are the things one should check when doing these kinda work (i am a newbie to UX)
对于 ng-tags-input,您需要获取服务器数据
{ text: 'Tag1' },
{ text: 'Tag2' },
{ text: 'Tag3' }
有关更多信息,请参阅 http://mbenford.github.io/ngTagsInput/demos
请确保您需要提供 display-property="name"
或您想要显示的任何内容或 HTML 模板
HTML
<tags-input ng-model="tags" display-property="name" placeholder="Add a tag" replace-spaces-with-dashes="false" >
<auto-complete source="loadTags($query)"
min-length="0"
load-on-focus="true"
load-on-empty="true"></auto-complete>
</tags-input>
我不知道你的所有设置,但这个例子应该适合你。请启动它并与您的设置进行比较:
[编辑]
如果不是 HTML 问题,而是:
$scope.loadTags = function(query) {
return $http.get('http://localhost/search.php?term='+query);
};
更改为:
$scope.loadTags = function($query) {
return $http.get('http://localhost/search.php?term='+query).then(function(response) {
return response.data;
});
};
JS
var app = angular.module('plunker', ['ngTagsInput']);
//'ngTagsInput'
app.controller('MainCtrl', function($scope, $http) {
$scope.tags = [];
$scope.loadTags = function(query) {
return $http.get('http://localhost/search.php?term='+query);
};
});
HTML:
<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<script>document.write('<base href="' + document.location + '" />');</script>
<link rel="stylesheet" href="style.css" />
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://mbenford.github.io/ngTagsInput/css/ng-tags-input.min.css" />
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.2/angular.min.js"></script>
<!--<script src="http://mbenford.github.io/ngTagsInput/js/ng-tags-input.min.js"></script> -->
<script src="ng-tags-input.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="app.js"></script>
</head>
<body ng-controller="MainCtrl">
<div class="container-fluid">
<div>
<tags-input ng-model="tags" >
<auto-complete source="loadTags($query)"></auto-complete>
</tags-input>
</div>
</div>
<p>Model: {{tags}}</p>
</body>
</html>
这是一个示例 html 代码,可以显示基于标签的过滤栏。但我想与已经实施的另一个应用程序集成。该应用程序有自己的应用程序,控制器定义。问题是即使在模板中进行更改后我也看不到任何更改(主应用程序使用 mustache 模板)。这些是我所做的更改。
查看我刚刚添加 ['ngTagsInput'] 到应用定义
的 JS 部分var app = angular.module('staticSelect', ['ui.bootstrap','ngTagsInput']);
app.controller('ExampleController', ['$scope', '$http', '$rootScope','$timeout', function($scope, $http, $rootScope, $timeout) {
$scope.tags = [];
我的 HTML 变化:
<div class="container-fluid" >
<p>some junk</p>
<tags-input ng-model="tags" >
<!--<auto-complete source="loadTags($query)"></auto-complete> -->
</tags-input>
</div>
根据我的理解,它至少应该显示标签框,但它没有显示。
我的问题:
1. Am i missing something ?
2. What are the things one should check when doing these kinda work (i am a newbie to UX)
对于 ng-tags-input,您需要获取服务器数据
{ text: 'Tag1' },
{ text: 'Tag2' },
{ text: 'Tag3' }
有关更多信息,请参阅 http://mbenford.github.io/ngTagsInput/demos
请确保您需要提供 display-property="name"
或您想要显示的任何内容或 HTML 模板
HTML
<tags-input ng-model="tags" display-property="name" placeholder="Add a tag" replace-spaces-with-dashes="false" >
<auto-complete source="loadTags($query)"
min-length="0"
load-on-focus="true"
load-on-empty="true"></auto-complete>
</tags-input>
我不知道你的所有设置,但这个例子应该适合你。请启动它并与您的设置进行比较:
[编辑]
如果不是 HTML 问题,而是:
$scope.loadTags = function(query) {
return $http.get('http://localhost/search.php?term='+query);
};
更改为:
$scope.loadTags = function($query) {
return $http.get('http://localhost/search.php?term='+query).then(function(response) {
return response.data;
});
};