angularjs1.5 组件内用函数向外传值

来源:互联网 发布:java微信客服系统源码 编辑:程序博客网 时间:2024/05/21 07:07

组件:

.component('homeCityListCom',{
     bindings: {
        list: '<',
        cityname:'&'
    },
    controllerAs: 'vm',
    template:
    `
    <div class="cityListBox">
        <span class="title">按拼音首字母选择</span>
        <div class="cityItem flexRowStart" ng-repeat="x in vm.list track by $index">
            <p class="zimu flexColumnCenter">{{x.sortName}}</p>
            <ul class="flexRowStart city">
                <li ng-repeat="c in x.cities"><a  href="/#!/home?city_id={{c.cityId}}" ng-click="vm.cityname({name: c.cityName})">{{c.cityName}}</a></li>
            </ul>
        </div>
    </div>`
})

控制器:

.controller('cityListCtrl', ['$scope','$http', function ($scope,$http) {
    let that = this;
    // 将城市名字存在本地
    that.cityName = function(name){
        console.log(123);
        localStorage.setItem('cityName', name);
    }

}])

使用组件:

<home-city-list-com list="cl.cityList" cityname="cl.cityName(name)"></home-city-list-com>

路由设置:

  .state('city_list',{
            url:"/city_list",
            templateUrl:'templates/indexTpl/city_list.html',
            controllerAs:'cl',
            controller:'cityListCtrl'
        })

0 0